标题:找大神求助,为啥这个是错的啊
只看楼主
杨大傻
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2022-7-30
结帖率:75%
已结贴  问题点数:20 回复次数:4 
找大神求助,为啥这个是错的啊
#include<stdio.h>
struct student
{
int xuehao;
char name[30];
float chengji;
}a,b;
int main()
{
printf("请输入第一位学生的学号、姓名和成绩:\n");
scanf("%d,%s,%f",&a.xuehao,a.name,&a.chengji);
printf("请输入第二个学生的学号、姓名和成绩:\n");
scanf("%d,%s,%f",&b.xuehao,b.name,&b.chengji);
printf("成绩较高者的信息如下:\n");
if(a.chengji>b.chengji)
printf("%d\t%s\t%f\n",a.xuehao,a.name,a.chengji);
else if(a.chengji<b.chengji)
 printf("%d\t%s\t%f\n",b.xuehao,b.name,b.chengji);
else
{
printf("%d\t%s\t%f\n",a.xuehao,a.name,a.chengji);
printf("%d\t%s\t%f\n",b.xuehao,b.name,b.chengji);
 }
return 0;
}
搜索更多相关主题的帖子: 成绩 姓名 name printf 学号 
2022-07-30 15:51
梦想远航lyz
Rank: 2
等 级:论坛游民
威 望:1
帖 子:39
专家分:76
注 册:2017-10-23
得分:10 
和scanf格式解析有关
printf("请输入第一位学生的学号、姓名和成绩:\n");
scanf("%d", &a.xuehao);
scanf("%s", a.name);
scanf("%f", &a.chengji);
printf("请输入第二个学生的学号、姓名和成绩:\n");
scanf("%d", &b.xuehao);
scanf("%s", b.name);
scanf("%f", &b.chengji);
2022-07-30 16:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
%s,

一个字符串的尾部若不是空白字符那一定会被%s读取,后面不可能是逗号

在解决这个问题前,先要确定一下 输入是不是必须以逗号分割?
如果不是的话,那别给自己添麻烦,就以默认的空白字符为分隔符;
如果是的话,"%d,%s,%f" 改为 "%d , %[^, \f\v\t\r\n] ,%f"
2022-07-30 19:24
杨大傻
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2022-7-30
得分:0 
回复 2楼 梦想远航lyz
谢谢
2022-08-01 13:48
杨大傻
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2022-7-30
得分:0 
回复 3楼 rjsp
谢谢
2022-08-01 13:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509682-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035081 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved