John_Gcn 2022-12-07 17:18 采纳率: 83.3%
浏览 43
已结题

c语言小白数组的问题以及%f的问题

首先这个是一个学生成绩系统的小问题

在开头对于数组的定义,对于其中量的问题不太理解{0,0,0,0,0,0,}就是这个
我在下面的代码段无法找到二维数组的其中一个数据,只有通过修改i,j的数值一遍一遍的尝试找位置
其次是在case(1)(2)中最后一个printf是为了求出平均数,但是如果我将%d改成%f的话(因为开头zonghe变量是float类型)
会显示不出来数据,用%d显示又不能精确到小数,所以很苦恼,修改了好多次都不成功


#include <stdio.h>
int main()
{
 int a[5][6]={{0,0,0,0,0,0},{0,3,6,7,9,1},{0,4,9,2,1,6},{0,8,7,6,5,3},{0,1,3,6,9,5}};
 int i,j,shuzi,xuehao;
 int sum,zonghe=0;
printf("所有人成绩为:\n");
for(i=1;i<=4;i++)
 {
  printf("%d:  ",i);
  for(j=1;j<=5;j++)
   printf("%d ",a[i][j]);
   printf("\n");
 }
 printf("选择查询方式:\n");
 printf("1. 按行查询,可查询某个学生所有课程成绩和平均成绩\n");
 printf("2. 按列查询,可查询某门课所有学生成绩和该门课平均成绩\n");
 printf("3. 按行列查询,可查询某个学生某门课成绩\n");
 scanf("%d",&shuzi);
 switch (shuzi) 
 {
 
 
 case 1:
  printf("请输入学生的学号:\n");
   scanf("%d",&xuehao);
   printf("该学生的成绩为:\n");
    for(j=0;j<5;j++)
     {
     printf("%d ",a[xuehao][j+1]);
     }
     printf("\n");
     for(j=0;j<5;j++)
     {
      sum=a[xuehao][j+1];
      zonghe=zonghe+sum;
     }
      zonghe=zonghe/5;
     printf("该学生的平均成绩为:\n%1.1d",zonghe);
break;

 case 2:
   printf("请输入课程号:\n");
    scanf("%d",&xuehao);
    printf("该课程的成绩为:\n");
     for(j=0;j<4;j++)
      {
      printf("%d ",a[j+1][xuehao]);
      }
      printf("\n");
      for(j=0;j<4;j++)
      {
       sum=a[j+1][xuehao];
       zonghe=zonghe+sum;
      }
       zonghe=zonghe/5;
      printf("该课程的平均成绩为:\n%1.1f",zonghe);
break;

case 3:
   printf("请输入几行几列:\n");
    scanf("%d\n%d",&i,&j);
     printf("该学生的成绩为:\n");
      printf("%d ",a[i][j]);
       printf("\n");
      
break;
 }
}


  • 写回答

4条回答 默认 最新

  • 於黾 2022-12-07 17:21
    关注

    横着看太不好理解,你把它竖起来就好了

    int a[5][6]=
    {
    {0,0,0,0,0,0},//这对应的是a[0][0]到a[0][5]
    {0,3,6,7,9,1},//a[1][0]到a[1][5]
    {0,4,9,2,1,6},
    {0,8,7,6,5,3},
    {0,1,3,6,9,5}//a[4][0]到a[4][5]
    };
    

    数组索引从0开始
    2.zonghe这个变量类型本身是个int,它就存不下小数啊,要么你直接写printf("%f",zonghe/5f),要么你把它定义成float再求值,要么你重新定义个float型的变量来存平均数,不要非把结果写回sum里

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 修改了问题 12月7日
  • 创建了问题 12月7日

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大