为什么我的这个C代码,两个完全一样的程序(复制粘贴的),一个能运行,不能运行的始终不能运行?

2022-11-28 06:36

1个回答
更新:应该是scanf的问题。scanf在读取一个字符串之后再读取数字,有时就会出现问题。
你可以试试这几句话:
char s[20];

scanf("%s",s);
printf("string:%s:stringend\n",s);
char c = getchar();
printf("char:%c:charend\n",c);
如果你输入一个前后带几个空格的字符串,比如“ 123 ”,你会发现s忽略了前面的空格,读入了非空格字符(123),然后停在了后面的第一个空格,并把这个空格放回输入流了。所以,第二行就会立即执行,读入一个空格然后输出。
这是个很有可能的原因...不过更详细的错误可能需要你提供多一点的信息,比如输入样例和报错信息了。我自己试过,没有遇到问题。
---
我觉得最有可能的原因是struct的对齐问题,你可以把struct定义里头float挪到最上面试试。因为struct的对齐问题是不同编译器不太一样的,你可以提供多点信息,比如用的哪个编译器,和报错信息。
因为听你的描述,struct大小从28字节变成32字节就能正常运行,所以可能是这里的问题。
但是我跑过你的代码了,我能正常运行,虽然我要把flushall()改成_flushall()
#include
#include
struct Student {
char name[20];
short int age;
float score;
};
int main(void) {
int len;
int i;
struct Student *pArr;
printf("%d\n",sizeof(struct Student));
printf("请输入学生个数:\n") ;
printf("len = ");
scanf("%d", &len);
_flushall();
pArr = (struct Student*)malloc(sizeof(struct Student)*len);
for(i=0; iprintf("请输入 %d\n", i+1);
_flushall();
printf("score = ");
scanf("%lf", &pArr[i].score);
_flushall();
printf("name = ");
scanf("%s", pArr[i].name);
printf("age = ");
scanf("%d", &pArr[i].age);
}
free(pArr);
return 0;
}
说明有可能咱们的编译器不一样~
相关问答
怎么复制粘贴星号密码
1个回答2023-08-11 18:05
星号密码不能复制粘贴
一个C程序到完成运行要经过哪几个步骤
2个回答2023-02-09 01:00
C源程序到运行程序步骤: 1.编辑:输入源程序并存盘(.C)。 2.编译:将源程序翻译为目标文件(.OBJ)。 3.链接:将目标文件生成可执行文件( .EXE)。 4.运行:执行.EXE文件,得到运行...
全文
什么是人生命运,什么是人生命运程序
1个回答2023-08-08 07:42
人生的道路,人生的过程,对于一个自己敢对自己负责人,命运是可以创造的,会有自己的生活人生,感受到自己是自己,遇到要敢分析解决,自己敢对自己负责。
女命,1977年农历五月初八卯时。命运如何,不要粘贴?
1个回答2022-12-24 08:49
格局比较高,但是命运
如何让程序自我复制(用C++)
2个回答2022-12-14 03:30
简单啊,你用STL库里的IO类,以二进制打开你要复制的EXE文件,再以写方式写到指定的路径就OK了,很简单。
事物周而复始的运动或变化的成语
1个回答2024-01-26 06:13
日复一日 rì fù yī rì [释义] 复:再,又。过了一天又一天。比喻日子久,时间长。也形容光阴白白地过去。 [语出] 南朝·宋·范晔《后汉书·光武帝纪下》:“天下重器,常恐不任,日复一日,...
全文
梅兰竹菊四剑童是天山童姥的什么人
1个回答2024-06-02 09:34
深思、疑虑,而在这无息无声地生活和劳作在黄土高原这片广大的土地上,不论土地有多么贫瘠,命运有多么不公,都不忘了播撒希望的人们,该是多么可爱。图片 每天吃着黑面馍的时代里,他们的梦想是那么渺小而宏伟...
全文
关于倒立
1个回答2024-06-02 09:33
制主要是靠撑开的手指,不能全靠手掌心。当然你的臂力必须足够大,倒立时你的十个手指必须要有一定的弯曲,这个很关键,你要感觉到每个手指的指尖都有支撑力,那么,当你训练到一定程度后,就会凭感觉控制平衡,你感...
全文
有哪些好的英语演讲家
1个回答2024-06-02 09:31
可以搜索国外大学毕业典礼的演讲视频,演讲的内容也都是积极向上的