类型问题,感谢大佬求助


/*  编写一程序P415.C实现以下功能
   设有10名歌手(编号为1-10)参加歌咏比赛,另有6名评委打分,每位歌手的得分从键盘输入:先提示“Please input singer's score: ”,再依次输入第1个歌手的6位评委打分(10分制,分数为整型,分数之间使用空格分隔),
 第2个歌手的6位评委打分...以此类推。计算出每位歌手的最终得分(扣除一个最高分和一个最低分后的平均分,最终得分保留2位小数),最后按最终得分由高到低的顺序输出每位歌手的编号及最终得分。
   注意:变量数据类型的选择应适当,在保证满足设计要求精度的情况下,养成不浪费内存空间和计算时间的好习惯。
 编程可用素材:printf ("Please input singer's score:\n")、printf("\nscores:\n")、
 printf("No.…: …。
   程序的运行效果应类似地如图1所示,其中的红色部分是从键盘输入的内容。 */
/*
1 4 7 3 6 3
8 7 8 5 9 8
7 5 6 8 5 4
7 6 7 5 6 5
3 5 6 7 5 5
7 7 7 8 9 6
9 4 3 7 3 6
4 8 6 7 5 8
8 7 8 8 9 8
7 7 6 7 6 8
*/
#include<stdio.h>

int main(void)
{
 int score[10][6],i,j,max,imax,min,imin;//定义分数,循环控制i,j;最大max,最大时的i值,最小值,最小值时的i值
 float countave[10][2],temp2,temp;//定义每个人的平均值;countave[I][0]为分数,[1]为编号
 float sum;//去掉最高最低分后的总和。
 printf("Please input singer's score:\n");
 for(i=0;i<10;i++)
 {
  scanf("%d %d %d %d %d %d",&score[i][0],&score[i][1],&score[i][2],&score[i][3],&score[i][4],&score[i][5]);
 }

 for(i=0;i<=9;i++)
 {  max=score[i][0];
   imax=0;
   min=score[i][0];
   imin=0;
  for(j=0;j<=5;j++)
  {
   if(score[i][j]>=max)
   {max=score[i][j];imax=j;}
  
  }
  for(j=0;j<=5;j++)
  {
   if(score[i][j]<=min)
   {min=score[i][j];imin=j;}
  }

 
  score[i][imax]=0;
  score[i][imin]=0;
  sum=score[i][0]+score[i][1]+score[i][2]+score[i][3]+score[i][4]+score[i][5];
  //当定义sum为float时会报:从int到float的强制转换会丢失数据的警告(后面的数组都是整型)【不能有警告】,但是我要使得下面countave的运算结果有小数点,这道题如果用double的话得分为0:【未实现:数据类型的选择应考虑空间和时间开销,本程序不应使用double类型】,定义sum为int的话,为什么float定义的countave没有小数点呢?我该怎么做呢?(VC++6.0)。感谢大佬!强制转换问题到底是为什么会出现呢?~
  countave[i][0]=sum/4;
  countave[i][1]=i;
 }
 printf("\nscores:\n");
 for(i=0;i<=9;i++)
 {
  for(j=1;j<=9;j++)
  {
   if(countave[j][0]<countave[j-1][0])
   {
    temp=countave[j][0];
    countave[j][0]=countave[j-1][0];
    countave[j-1][0]=temp;
    temp2=countave[j][1];
    countave[j][1]=countave[j-1][1];
    countave[j-1][1]=temp2;
   }
  }
 }
 


 for(i=9;i>=0;i--)
 {
  printf("NO.%.0lf:%.2lf\n",countave[i][1]+1,countave[i][0]);
  count--;
 }
 
 
 return 0;
}

感谢大佬帮助!初学C,请多包涵!

苟延残喘1
浏览 1565回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP