| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 511 人关注过本帖
标题:输入100名学生的学号,姓名,性别,住址及10门功课,且显示每个学生10门课的 ...
只看楼主 加入收藏
j1554688206
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
输入100名学生的学号,姓名,性别,住址及10门功课,且显示每个学生10门课的最低和最高分,还要显示每门课不及格的学生人数,,还输入一个学号就能显示该学生的信息
# include "stdio.h"
# define N 100
# define M 10

struct student{

    int iId;
    char chName[15];
    char chSex;
    char chdizhi[15];
    int fsore[M];

    };

void fnmaxmin(struct student ststud[]);
void fndisp(struct student ststud[]);
void fnxinxi(struct student ststud[], int *num);

void main()
{
    int i, j;

    int sum;

    struct student stperson[N];

    printf("please input one hundred student's information:\n");

    for(i=0; i<N; i++)

        for(j=0; j<M; j++)
        
        {
            scanf("%d %s %s %s %d\n", stperson[i].iId, stperson[i].chName,
            stperson[i].chSex, stperson[i].chdizhi, &stperson[i].fsore[j]);


        }

    fnmaxmin(stperson);
    fndisp(stperson);
         
    printf("please input a number:\n");

        scanf("%d", &sum);


    fnxinxi(stperson, &sum);


    getch();
}



void fnmaxmin(struct student ststud[])
{
    int i, j, imax=0, imin=0;

    for(i=0; i<N; i++)

        for(j=0; j<M; j++)
        {
           if(ststud[i].fsore[j]>ststud[i].fsore[imax])
               
                imax=j;

           printf("%d %s %s %s %d\n",  ststud[i].iId, ststud[i].chName,
            ststud[i].chSex, ststud[i].chdizhi,ststud[i].fsore[imax]);
        }

    for(i=0; i<N; i++)

         for(j=0; j<M; j++)
        {
           if(ststud[i].fsore[j]<ststud[i].fsore[imin])
               
                imin=j;

           printf("%d %s %s %s %d\n", ststud[i].iId, ststud[i].chName,
            ststud[i].chSex, ststud[i].chdizhi,ststud[i].fsore[imin]);

        }
}

void fndisp(struct student ststud[])
{
    int i,j, icount=0;

    for(j=0; j<M; j++)

         for(i=0; i<N; i++)
         {
            if(ststud[i].fsore[j]<60)

                icount++;

            printf("the %d course of not pass have %d students\n", j+1, icount);

          }
}

void fnxinxi(struct student ststud[],int *num)
{
    int i, j;

    for(i=0; i<N; i++)

     {
        if(*num == ststud[i].iId)
            break;
     }
     
    for(j=0; j<M; j++)

      printf("%d %s %s %s %d\n", ststud[i].iId, ststud[i].chName,
            ststud[i].chSex, ststud[i].chdizhi,ststud[i].fsore[j]);

}
搜索更多相关主题的帖子: void include please 
2012-12-28 13:07
j1554688206
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-18
收藏
得分:0 
请问一下这个编程怎么错了呢?我找不出原因哦。请求帮忙.
2012-12-28 13:11
麦香
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:65
专家分:163
注 册:2011-10-18
收藏
得分:10 
  
  printf("%d %s %s %s %d\n", ststud[i].iId, ststud[i].chName,
            ststud[i].chSex, ststud[i].chdizhi,ststud[i].fsore[j]);
最好把几个输入项分开处理,你这样容易出问题

你们要进窄门,因为引向灭亡的门是宽的,路是大的,进去的人也多。
2012-12-28 13:24
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:10 
printf("%d %s %s %s %d\n", ststud[i].iId, ststud[i].chName,
            ststud[i].chSex, ststud[i].chdizhi,ststud[i].fsore[j]);


ststud[i].chSex是一个插入类型的字符,不能用%s来打印,
用%c,其他地方还没看,你先试试吧

I have not failed completely
2012-12-30 13:46
快速回复:输入100名学生的学号,姓名,性别,住址及10门功课,且显示每个学生10 ...
数据加载中...
 
   



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

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