| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 915 人关注过本帖
标题:初学C语言,请各位大神看看有什么问题!!可以运行但结果错误,谁帮我修改一 ...
取消只看楼主 加入收藏
guoyuhaha
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-2-28
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
初学C语言,请各位大神看看有什么问题!!可以运行但结果错误,谁帮我修改一下
学校举办配音大赛,一共有10位同学报名参加。大赛中有3位评委,每位评委将会对10个作品进行打分。打分的形式不限,可以让一个评委一次打完10个人的分数然后轮到下一位评委打分直到结束,也可以让三个评委轮流给作品打分,打完第一同学的分再轮流给第二位同学打分,以此类推直到结束(打分方式见下表的例子)
打分方式一
打分方式二
例:1号评委,请您按顺序给10位选手打分,按回车键分隔。2号评委,请您按顺序给10位选手打分,按回车键分隔。3号评委,请您按顺序给10位选手打分,按回车键分隔。
例:1号选手表演结束,请三位评委录入您的分数,按回车键分隔。2号选手表演结束,请三位评委录入您的分数,按回车键分隔。
……
10号选手表演结束,请三位评委录入您的分数,按回车键分隔。
序号
1请你利用C语言中的数组编写一个程序,要求能够统计并显示每位参赛选手的平均得分是多少。
2求出平均成绩最高的前三名同学的序号。
3在程序开始运行时让用户自由决定有几位参赛学生,几位评委。
4在程序开始运行时确定评委评分的方式:可选择5分制、10分制或者100分制。甄别用户输入的数字,对于不合理的输入,如:评委在5分制输入了大于5或者小于1,程序能够自动提示错误,并马上让评委再次输入。
5见案例描述中说明了两种打分方式。程序要能实现两种打分模式,并在程序开始运行时让用户选择以哪种方式打分。

 程序!!!!!!
#define M 100
#include<stdio.h>
void main()
{
    void Fox(int *p,int k);
    int x,y,z,m,n,w,i,j,a[M][M],sum=a[0][0];float max1=0.0,max2=0.0,max3=0.0,b[M];
    printf("请输入评委数:");
    scanf("%d",&x);
    printf("请输入参赛人数:");
    scanf("%d",&y);
    printf("请输入打分方式1or2:");
    scanf("%d",&z);
    printf("请选择5分制、10分制或者100分制:");
    scanf("%d",&m);
    if(z==1)
    {   
        for(i=0;i<x;i++)
        {
            printf("请您按顺序给所有选手打分:");
            for(j=0;j<y;j++)
            {
                scanf("%d",&a[i][j]);
                Fox(&a[i][j],m);
               
            }
        }
        for(j=0;j<y;j++)
        {
          for(i=0;i<x;i++)
            {
                    sum+=a[i][j];
                    b[j]=sum/(float)x;
                    sum=a[0][i+1];
            }
          printf("学生平均成绩b[j]=%f\n",b[j]);
        }
        for(j=0;j<y;j++)
        {
          while(max1<b[j])
          {
              max1=b[j];n=j;
              printf("最高分序号:%d\n",n);
          }
          while(max2<b[j]&&j!=n)
          {  
              max2=b[j];w=j;
             printf("第二高分序号:%d\n",w);
          }
          while(max3<b[j]&&j!=n&&j!=w)
          {
              max3=b[j];
               printf("第三高分序号:%d\n",j);
          }
        }
    }
    else
    {
        for(i=0;i<y;i++)
        {
            printf("请几位评委录入您的分数:");
            for(j=0;j<x;j++)
            {
              scanf("%d",&a[j][i]);
               Fox(&a[j][i],m);
            }
        }
        for(j=0;j<y;j++)
        {
         b[j]=(a[0][j]+a[1][j]+a[2][j])/3.0;
         printf("学生平均成绩b[j]=%f\n",b[j]);
        }
    }
}
void Fox(int *p,int k)
{

  if(k==5)
  {
   if(*p<1||*p>5)
    {
       printf("输入格式错误,请检查后再次输入:");
       scanf("%d",p);
    }
  }
  else if(k==10)
  {
   if(*p<1||*p>10)
    {
      printf("输入错误,请再次输入:");
      scanf("%d",p);
    }
  }
  else if(k==100)
  {   
   if(*p<1||*p>100)
    {
     printf("输入格式错误,请检查后再次输入:");
     scanf("%d",p);
    }
  }
}
搜索更多相关主题的帖子: C语言 
2013-02-28 11:16
guoyuhaha
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-2-28
收藏
得分:0 
回复 12楼 锦芳
嘿嘿  已经调试解决了!!谢谢各位热心围观了!!!
2013-03-01 22:32
guoyuhaha
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-2-28
收藏
得分:0 
回复 楼主 guoyuhaha
这个真是初学!!不然就不会这么长了!!
2013-03-01 22:33
快速回复:初学C语言,请各位大神看看有什么问题!!可以运行但结果错误,谁帮我 ...
数据加载中...
 
   



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

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