| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 612 人关注过本帖
标题:这个程序输入数据后运行为什吗结果不对?求解释。
只看楼主 加入收藏
小小的C
Rank: 2
等 级:论坛游民
帖 子:31
专家分:22
注 册:2013-4-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
这个程序输入数据后运行为什吗结果不对?求解释。
[code#include<stdio.h>
struct student
{
     int num;
     char name[10];
     float Mscore;
     float Iscore;
     float sum;
     float aver;
};
void main()
{
    struct student a[5],k;
    int i,j;
    printf("请输入每个同学的信息:\n");
    for(i=0;i<5;i++)
    {
       scanf("%d,%s,%f,%f",&a[i].num,a[i].name,&a[i].Mscore,&a[i].Iscore);
       a[i].sum=a[i].Mscore+a[i].Iscore;
       a[i].aver=a[i].sum/2;
    }
    for(i=0;i<4;i++)
    {
        for(j=1;j<=4-i;j++)
            if(a[i].sum<a[j].sum){k=a[i];a[i]=a[j];a[j]=k;}
    }
    for(i=0;i<4;i++)
        printf("%d %3c %5.2f %5.2f %5.2f %5.2f\n ",a[i].num,a[i].name,a[i].Mscore,a[i].Iscore,a[i].sum,a[i].aver);
}][/code]
搜索更多相关主题的帖子: include 
2013-05-11 17:52
小小的C
Rank: 2
等 级:论坛游民
帖 子:31
专家分:22
注 册:2013-4-19
收藏
得分:0 
请输入每个同学的信息:
101,wui,68,98
102,fhug,85,85
103,djih,68,76
104,bdug,69,48
105,gyycg,15,86
101   ?-107374176.00 -107374176.00 -214748352.00 -107374176.00
 102   ?-107374176.00 -107374176.00 -214748352.00 -107374176.00
 103   ?-107374176.00 -107374176.00 -214748352.00 -107374176.00
 104    -107374176.00 -107374176.00 -214748352.00 -107374176.00
 Press any key to continue

新手发言,勿怪。
2013-05-11 18:06
MAXXO
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2013-5-9
收藏
得分:1 
学习了
2013-05-11 18:13
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
程序代码:
#include<stdio.h>

 struct student

 {
      int num;
      char name[10];
      float Mscore;
      float Iscore;
      float sum;
      float aver;

 };

 void main()

 {
     struct student a[5],k;
     int i,j;
     printf("请输入每个同学的信息:\n");
     for(i=0;i<5;i++)
     {
        scanf("%d,%s,%f,%f",&a[i].num,a[i].name,&a[i].Mscore,&a[i].Iscore);
        a[i].sum=a[i].Mscore+a[i].Iscore;
        a[i].aver=a[i].sum/2;
     }
     for(i=0;i<4;i++)
     {
         for(j=0;j<=4-i;j++)
             if(a[i].sum<a[j].sum){k=a[i];a[i]=a[j];a[j]=k;}
     }
     for(i=0;i<4;i++)
         printf("%d %s %5.2f %5.2f %5.2f %5.2f\n ",a[i].num,a[i].name,a[i].Mscore,a[i].Iscore,a[i].sum,a[i].aver);

 }

仰望星空...........不忘初心!
2013-05-11 18:22
小小的C
Rank: 2
等 级:论坛游民
帖 子:31
专家分:22
注 册:2013-4-19
收藏
得分:0 
回复 4楼 Susake
额,我没看出来和我写的有神马区别,而且运行结果和我2楼的一样啊?

新手发言,勿怪。
2013-05-11 18:44
星星碎了
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2013-5-6
收藏
得分:5 
这是该怎么输啊,怎么写都不对。
2013-05-11 18:45
小小的C
Rank: 2
等 级:论坛游民
帖 子:31
专家分:22
注 册:2013-4-19
收藏
得分:0 
回复 6楼 星星碎了
怎么输?

新手发言,勿怪。
2013-05-11 18:48
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:14 
以下是引用小小的C在2013-5-11 18:44:58的发言:

额,我没看出来和我写的有神马区别,而且运行结果和我2楼的一样啊?

我开始是把逗号去掉弄的,发现你的错误是后面的排序和字符串的输出
那个冒泡排序错了,是从0开始的你比较下
那个字符串的输出错了,不是%3c是%s
后面为了和你的输入方式相同我就重新加上了逗号直接复制上来,我刚试了一下,不能用逗号隔开,因为%s是以空格和换行符为结束符的,你把逗号去掉就行了,
当然你可能会想在%s前面加个%*c就行了,但是还是会错因为%s始终不会终止
程序代码:
#include<stdio.h>
struct student

 {
       int num;
       char name[10];
       float Mscore;
       float Iscore;
       float sum;
       float aver;

 };
void main()

 {
      struct student a[5],k;
      int i,j;
      printf("请输入每个同学的信息:\n");
      for(i=0;i<5;i++)
      {
         scanf("%d%s%f%f",&a[i].num,a[i].name,&a[i].Mscore,&a[i].Iscore);
         a[i].sum=a[i].Mscore+a[i].Iscore;
         a[i].aver=a[i].sum/2;
      }
     for(i=0;i<4;i++)
      {
          for(j=0;j<=4-i;j++)
              if(a[i].sum<a[j].sum){k=a[i];a[i]=a[j];a[j]=k;}
      }
      for(i=0;i<4;i++)
          printf("%d %s %5.2f %5.2f %5.2f %5.2f\n ",a[i].num,a[i].name,a[i].Mscore,a[i].Iscore,a[i].sum,a[i].aver);

 }



仰望星空...........不忘初心!
2013-05-11 18:58
小小的C
Rank: 2
等 级:论坛游民
帖 子:31
专家分:22
注 册:2013-4-19
收藏
得分:0 
回复 8楼 Susake
哦哦,我明白了。那个排序的确实是我疏忽了,不过j=0也不对吧;
我改成了 for(i=0;i<4;i++)
      {
          for(j=i+1;j<=4;j++)
              if(a[i].sum<a[j].sum){k=a[i];a[i]=a[j];a[j]=k;}
      }
谢了。

新手发言,勿怪。
2013-05-11 19:47
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
....

仰望星空...........不忘初心!
2013-05-11 20:01
快速回复:这个程序输入数据后运行为什吗结果不对?求解释。
数据加载中...
 
   



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

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