满意答案
//希望我的回答对你的学习有帮助
#include
#include
structStudent
{
charName[10];//学生的姓名,使用字符数组存储,长度为10
charPhoneNumber[15];//学生的电话号,使用字符数组存储,长度为15
}stu[5],temp;//结构体数组,长度为5,用来存放5个学生的信息
//临时变量,用在冒泡排序的过程中交换数据
intmain()
{
for(inti=0;i
{
scanf_s("%s%s",stu[i].Name,10,&stu[i].PhoneNumber,15);//输入字符串,使用%s标记。其中每个字符串使用“空格”分开
//如果输入的字符串包含“空格”,使用gets函数
}
for(inti=0;i
//因为剩下最后一个数据不需要比较
{
for(intj=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(inti=0;i
{
printf("%s%s\n",stu[i].Name,stu[i].PhoneNumber);
}
getchar();getchar();
return0;
}
00分享举报
用c语言输出11位电话号码 用C语言结构体解决“从键盘输入五个用户的数据 包括姓名和电话号码 要求按姓名排序后 输出用户数据...