发布网友 发布时间:2024-10-24 16:47
共4个回答
热心网友 时间:2024-11-05 18:55
strcpy(temp,per[i].num);
strcpy(per[i+1].num,per[i].num);
strcpy(per[i+1].num,temp);
这里 操作的应该是name吧
所以应该是
strcpy(temp,per[i].name);
strcpy(per[i+1].name,per[i].name);
strcpy(per[i+1].name,temp);
热心网友 时间:2024-11-05 18:53
strcpy(temp,per[i].name); //注意你代码写了num
strcpy(per[i+1].name,per[i].name);
strcpy(per[i+1].name,temp);
还有个错误
printf("%d%s\n",per[i].num,per[i].name); //把&去掉
输入测试样例:
1 shao //中间加上空格,就ok
热心网友 时间:2024-11-05 18:51
感觉是scanf("%d%s",&per[i].num,per[i].name);
要不分开试试
scanf("%d",&(per[i].num));
scanf("%s",per[i].name);
热心网友 时间:2024-11-05 18:53
scanf("%d%s",&per[i].num,per[i].name);
%d 和 %s 之间要有一个空格,输入的时候,数字和字符串之间也要有一个空格
不然系统会把所有内容都放进 %d 里面,自然会报错
改成下面这样子试一试 :
scanf( "%d %s", & per[i].num, per[i].name );