| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 999 人关注过本帖
标题:又发了个白痴问题,可是对于C语言我就是个白痴,渴望某位大侠提携啊!
只看楼主 加入收藏
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
1,先说那个界面问题,不讲究美观最起码有个提示吧,比如提示输入姓名成绩什么的,一两个还好要是十几个像你的那个程序直接输十个的话要循环50次输着输着就容易乱
2你在保持姓名成绩的时候直接&+数组名,就以个学生还好那两个的话就直接覆盖掉了
3姓名是字符串不应该以%c进行输入,输出的
4还有一点就是你的max的初始化,你是初始化为第一个数组的sum假如我只输入一个学生就结束,你max后下面的循环就没法进去,上面你的a 又没有初始化,到最后输出的时候你又怎么保证a的值就是和i的值相等

Go Go Go
2010-12-25 11:20
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:0 
回复 8楼 zhaoya881010
我用的是二维数组的好不好,加&就错了,你那个一维的不好用,如果第一位学生的总成绩大于第二位的输出名字就会出错的.

经验积累中............
2010-12-25 11:24
gavinsurekam
Rank: 2
等 级:论坛游民
帖 子:15
专家分:15
注 册:2010-12-25
收藏
得分:0 
/*编写一个程序,
输入n个学生的学号,姓名,3门课程的成绩,
求出总分最高的学生并输出该学生的所有信息*/
#include <stdio.h>
#define SIZE 80


typedef struct student{
    char studentID[SIZE];
    char studentName[SIZE];
   
    float scoreComputer;
    float scoreEnglish;
    float scoreMath;
  }stu;

main()
{
        stu astu[SIZE];
    int n,i;   
    float sum;
    float max=0;
    int flag =0;

   
    printf("please enter the total number:");
    scanf("%d",&n);
   
    printf("please enter the information of everybody:\n");
    for (i=0;i<n;i++)
    {   
        printf("ID:");
      scanf("%s",astu[i].studentID);
      printf("NAME:");
      scanf("%s",astu[i].studentName);
      printf("scoreComputer:");
      scanf("%f",&astu[i].scoreComputer);
      printf("scoreEnglish:");
      scanf("%f",&astu[i].scoreEnglish);
      printf("scoreMath:");
      scanf("%f",&astu[i].scoreMath);
    }
   
    for (i=0;i<n;i++)
    {
        sum=astu[i].scoreComputer+astu[i].scoreEnglish+astu[i].scoreMath;
        if(sum>max){
            max =sum;
            flag =i;
        }
    }
   
    printf("-------------------------------------------\n");
    printf("ID\tNAME\tCOMPUTER\tENGLISH\tMATH\n");
    for(i =0;i<n;i++){
        printf("%s\t%s\t%f\t%f\t%f\n",astu[i].studentID,astu[i].studentName,\
              astu[i].scoreComputer,astu[i].scoreEnglish,astu[i].scoreMath);
        
    }
    printf("-------------------------------------------\n");

    printf("ID:%s,Name:%s,Computer:%f,English:%f,Math:%f\n",\
    astu[flag].studentID,astu[flag].studentName,\
    astu[flag].scoreComputer,astu[flag].scoreEnglish,astu[flag].scoreMath);
}

这里有一个运用结构体写的,输入的数据没有经过处理,希望对你有所帮助。有问题可以加我QQ:153612021.希望我们共同进步。
2010-12-25 11:26
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:0 
回复 9楼 qgujinxin
我可不是什么大侠,人家都侠都很忙的,没时间,所以就叫小弟来了.小弟只是一个跑腿的.

经验积累中............
2010-12-25 11:26
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
回复 12楼 五当家
我以为你还是用他的程序改的呢,我那个不会报错的第一个大于第二的话 我把,max的初始化话改掉了

Go Go Go
2010-12-25 11:31
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:0 
楼主是不是严重的瞧不起人,虽然我回答问题不是看分来的,但是你为什么这样?给我4分?这.........

经验积累中............
2010-12-25 11:34
qgujinxin
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2010-11-23
收藏
得分:0 
回复 16楼 五当家
首先就很久没来论坛,没有及时刚回复你的消息向您道歉,其次真没有瞧不起的话,您是前辈。还有就是给4分是因为另一位写的确实要更好一点!
2011-05-04 22:23
快速回复:又发了个白痴问题,可是对于C语言我就是个白痴,渴望某位大侠提携啊!
数据加载中...
 
   



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

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