用c语言输出11位电话号码,用C语言结构体解决 “从键盘输入五个用户的数据,包括姓名和电话号码,要求按姓名排序后,输出用户数据...

满意答案

//希望我的回答对你的学习有帮助

#include 

#include 

struct Student

{

char Name[10];//学生的姓名,使用字符数组存储,长度为 10

char PhoneNumber[15];//学生的电话号,使用字符数组存储,长度为 15

}stu[5], temp;//结构体数组,长度为 5,用来存放 5 个学生的信息

//临时变量,用在冒泡排序的过程中交换数据

int main()

{

for (int i = 0; i 

{

scanf_s("%s %s", stu[i].Name, 10, &stu[i].PhoneNumber, 15);//输入字符串,使用 %s 标记。其中每个字符串使用“空格”分开

//如果输入的字符串包含“空格”,使用 gets 函数

}

for (int i = 0; i 

//因为剩下最后一个数据不需要比较

{

for (int j = 0; j 

//每次循环的次数都在缩小

//因为每次循环之后,最值已经放在了数组的尾部

//所以在下一次循环时,就可以排除这个最值,把比较的范围

{

if (strcmp(stu[j].Name, stu[j + 1].Name) > 0)//strcmp 由定义得到,它就是一个根据Ascii码,对字符串比较的函数

//如果strcmp 返回 0 ,证明两个字符串 相等

//如果strcmp 返回 - ,证明第一个字符串比第二个字符串小

//这个小,是指在两个字符串中第一个不相同的字符在 Ascii码表中的相对位置

//如果strcmp 返回 + ,证明第一个字符串比第二个字符串大

//这个大,是指在两个字符串中第一个不相同的字符在 Ascii码表中的相对位置

{

temp = stu[j];        //进行数据交换

stu[j] = stu[j + 1];

stu[j + 1] = temp;

}

}

}

for (int i = 0; i 

{

printf("%s %s\n", stu[i].Name,stu[i].PhoneNumber);

}

getchar(); getchar();

return 0;

}

d4931ed58d1e31cc193a55a403626e70.png

00分享举报