标题:看程序,不知道哪里错了,得不到结果
只看楼主
孙娜娜
Rank: 2
等 级:论坛游民
帖 子:49
专家分:22
注 册:2012-3-5
结帖率:93.75%
已结贴  问题点数:20 回复次数:8 
看程序,不知道哪里错了,得不到结果
//输出成绩较高学生的学号,姓名和分数
#include<stdio.h>
int main()
{
    struct Student
    {
        int num;
        char name[20];
        int score;
    }student1,student2;
     scanf("%d,%s,%d",&student1.num,&student1.name,&student1.score);
    scanf("%d,%s,%d",&student2.num,&student2.name,&student2.score);
    printf("The higher score is:\n");
    if (student1.score>=student2.score)
        printf("%d,%s,%d\n",student1.num,student1.name,student1.score);
               else
               printf("%d,%s,%d\n",student2.num,student2.name,student2.score);
               return 0;



           }
搜索更多相关主题的帖子: include 姓名 higher 
2012-06-02 20:14
nzxiansheng
Rank: 2
等 级:论坛游民
帖 子:36
专家分:56
注 册:2012-5-20
得分:3 
#include<stdio.h>
int main()
{
    struct Student
    {
        int num;
        char name[20];
        int score;
    }student1,student2;
   // scanf("%d,%s,%d",&student1.num,&student1.name,&student1.score);  scanf("") 不能加 逗号    一个空格 说明 一个输入的 结束!
  //  scanf("%d,%s,%d",&student2.num,&student2.name,&student2.score);

     scanf("%d %s %d",&student1.num,&student1.name,&student1.score);
    scanf("%d %s %d",&student2.num,&student2.name,&student2.score);
    printf("The higher score is:\n");
    if (student1.score>=student2.score)
        printf("%d,%s,%d\n",student1.num,student1.name,student1.score);
               else
               printf("%d,%s,%d\n",student2.num,student2.name,student2.score);
               return 0;



           }
2012-06-02 20:25
孙娜娜
Rank: 2
等 级:论坛游民
帖 子:49
专家分:22
注 册:2012-3-5
得分:0 
回复 2楼 nzxiansheng
为什么把scanf改为:scanf("%d,%d,%s",&student1.num,&student1.score,student1.name);
                    scanf("%d,%d,%s",&student2.num,&student2.score,student2.name);
就可以了呢???      
      
2012-06-02 20:38
真的很菜
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:94
专家分:151
注 册:2012-2-18
得分:3 
你这代码没错,我估计是你输入时的键盘输入与你的scanf(“”)那的格式不一致导致的。你把它换成     scanf("%d%s%d",&student1.num,student1.name,&student1.score);
    scanf("%d%s%d",&student2.num,student2.name,&student2.score);再输入试试。
2012-06-02 21:48
小木虫
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2012-6-2
得分:3 
顶三楼。应该是你在输入的时候,格式和scanf不一样。
2012-06-02 22:00
JollyRoger
Rank: 2
等 级:论坛游民
帖 子:14
专家分:32
注 册:2012-5-28
得分:3 
以下是引用孙娜娜在2012-6-2 20:38:04的发言:

为什么把scanf改为:scanf("%d,%d,%s",&student1.num,&student1.score,student1.name);
                    scanf("%d,%d,%s",&student2.num,&student2.score,student2.name);
就可以了呢???      
      
不是像楼上所说scanf不能有逗号,而是/%s,输入的时候把逗号也作为字符串的一部分了,把%s放后面没有逗号自然就可以了
使用%s说明符,那么空白字符以外的所有字符都是可以接受的,所以scanf() 跳过空白字符直到遇到第一个非空白字符,然后保存再次遇到空白字符之前的所有非空白字符。这就意味着%s使scanf() 读取一个单词,也就是说,一个不包含空白字符的字符串。如果使用字段宽度,scanf() 在字段的结尾或者第一个空白字符处停止。不能通过字段宽度使得scanf() 用一个%s说明符读取多于一个字的输入。最后一点:当scanf() 把字符串放在一个指定的数组中时,它添加终止的’\0’使得数组内容成为一个C字符串
2012-06-02 22:18
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
得分:3 
楼上说的对 不过你输入的时候得注意 应该这样101,lili<空格>89<空格>102,gaogao<空格>90<空格> 还是把逗号都删除了方便

[ 本帖最后由 阿鞠尼 于 2012-6-2 22:47 编辑 ]

喜欢睡觉 却经常熬夜
2012-06-02 22:27
heifeng2012
Rank: 3Rank: 3
来 自:上海
等 级:论坛游侠
帖 子:53
专家分:113
注 册:2012-3-22
得分:3 
格式问题
2012-06-02 23:02
jokerskill
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:392
专家分:554
注 册:2012-3-4
得分:3 
你的代码看着头晕
我的代码看着舒服
#include <stdio.h>
enum shu {a,b,c,d};
int main(void)
{
printf(" a = %d\n",a);
int w = 10;
printf(" w = %d\n",w);
w = a;
printf(" w = %d",w);
return 0;
}
2012-06-03 17:11



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




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

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