关于结构体数组输入和输出的一个小问题。

setihomesfl 2016-05-24 02:18:08
两个小细节,困扰了四个小时。没办法正常输出。
大家帮忙看下问题在哪。
#include
struct jiegouti1
{
char name[20];
int number;
char csex[20];
int igrade;
}xuesheng[5] = { {"sd",10,"fd",45},{"sd",10,"fd",45},{"sd",10,"fd",45},{"sd",10,"fd",45},{"sd",10,"fd",45} }
;
int main()
{
int j;
for (j = 0; j < 5;j ++);
{
printf("top%d",j+1);
printf("%s", xuesheng[j].name);
printf("%d", xuesheng[j].number);
printf("%s", xuesheng[j].csex);
printf("%d", xuesheng[j].igrade);
printf("\n");
};
return 0;
}
上面的是教材提供,自己敲出来的。
下面是自己写的。
#include
#define Printfshuchu printf("%s %d %s %d",xuesheng[j].name,xuesheng[j].number,xuesheng[j].csex,xuesheng[j].igrade);
struct jiegouti1
{
char name[20];
int number;
char csex[20];
int igrade;
}xuesheng[5]
;
int main(void)
{
int i,j;
for (j = 0; j < 5; j++);
{


scanf_s("%s", &xuesheng[j].name, 20);
scanf_s("%d", &xuesheng[j].number);
scanf_s("%s", &xuesheng[j].csex, 20);
scanf_s("%d", &xuesheng[j].igrade);

}
for (j = 0; j < 5;j ++);
{
printf("top%d \n",j+1);
Printfshuchu(printf);
};
return 0;
}
+++++++++++++++++++++++++++++++++++++++++
最后都抽了一包烟了 才发现问题。
然后动了两下撤销问题解决。
自己疏忽大意导致四个小时的浪费和各种不解,一直需找各种代码输入错误,
却不知是自己的马虎。
发帖检讨自己,顺便算是一个给自己和坛友的一个提醒。
...全文
844 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-05-25
  • 打赏
  • 举报
回复
引用 9 楼 lm_whales 的回复:
常有的事情,有时候会出现多了,少了个分号,大括号的错误 结果往往系统报错是某某头文件错误
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
赵4老师 2016-05-24
  • 打赏
  • 举报
回复
先学会跟踪代码,再学会写代码。
setihomesfl 2016-05-24
  • 打赏
  • 举报
回复
引用 4 楼 paschen 的回复:
[quote=引用 3 楼 setihomesfl 的回复:] [quote=引用 2 楼 paschen 的回复:] 两处 for (j = 0; j < 5; j++) 这个后面都多了一个分号
是的 就是这一个疏忽导致[/quote] 如果调试时单步跟踪程序运行,我想你不应该花4小时才发现 [/quote] 因为是小程序所以就没有跟踪,也因为是简单所以就没有往这方面想.
paschen 2016-05-24
  • 打赏
  • 举报
回复
引用 3 楼 setihomesfl 的回复:
[quote=引用 2 楼 paschen 的回复:] 两处 for (j = 0; j < 5; j++) 这个后面都多了一个分号
是的 就是这一个疏忽导致[/quote] 如果调试时单步跟踪程序运行,我想你不应该花4小时才发现
setihomesfl 2016-05-24
  • 打赏
  • 举报
回复
引用 2 楼 paschen 的回复:
两处 for (j = 0; j < 5; j++) 这个后面都多了一个分号
是的 就是这一个疏忽导致
paschen 2016-05-24
  • 打赏
  • 举报
回复
两处 for (j = 0; j < 5; j++) 这个后面都多了一个分号
lm_whales 2016-05-24
  • 打赏
  • 举报
回复
常有的事情,有时候会出现多了,少了个分号,大括号的错误 结果往往系统报错是某某头文件错误
醉花阴柳 2016-05-24
  • 打赏
  • 举报
回复

#define Printfshuchu printf("%s %d %s %d",xuesheng[j].name,xuesheng[j].number,xuesheng[j].csex,xuesheng[j].igrade);
Printfshuchu(printf);
setihomesfl 2016-05-24
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
先学会跟踪代码,再学会写代码。
主要是没几句代码,感觉没必要用. 也没往细节那去想 以为是别的问题.太大意了.

70,036

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧