标题:新手关于数组的问题,求各位帮忙
只看楼主
王寅森
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2017-4-24
结帖率:0
已结贴  问题点数:10 回复次数:6 
新手关于数组的问题,求各位帮忙

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,n;
    int a[n][8],max,min;
    int ave,sum=0;
    for(i=0;i<n;i++)
        for(j=0;j<8;j++)
    {
        scanf("%lf",&a[i][j]);
    }
  for(i=0;i<n;i++)
  {
      sum=max=min=a[i][0];
      for(j=1;j<8;j++)
      {
          if(a[i][j]>max)
            max=a[i][j];
          else if(a[i][j]<min)
            min=a[i][j];
          sum+=a[i][j];
      }
      ave=(sum-max-min)/6;
      printf("%.lf\n",ave);
      return 0;
  }
这是我写的,好像不对,但是不知道怎么去改
搜索更多相关主题的帖子: include 
2017-05-03 13:14
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:2 
n好象没定义
2017-05-03 15:21
王寅森
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2017-4-24
得分:0 
回复 2楼 吹水佬
没懂你什么意思

努力,奋斗!
2017-05-03 18:14
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:2 
int a[n][8]这样定义也许可以行得通~不过一些旧版的编译器是不支持的~老师教我们最好不要这样定义~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-03 18:15
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
得分:2 
我就这么问你吧!你给出的n值是多少?你没初始化,也没有复制
2017-05-04 09:12
杨阳11111
Rank: 2
等 级:论坛游民
威 望:1
帖 子:20
专家分:59
注 册:2017-5-4
得分:2 
把n给它赋值一个数字。
2017-05-05 09:08
zmf876870302
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
威 望:3
帖 子:50
专家分:199
注 册:2017-3-26
得分:2 
回复 楼主 王寅森
以下代码是我在你原有的代码基础上修改过来的,不知是否符合你的要求?C语言学习过程中,欢迎指教!
具体代码如下:
#include <stdio.h>
// #include <stdlib.h>       这个头文件可以不要

int main()
{
    int i,j,n;
   
    // 下面两句是解决 n 的赋值
    printf("请输入参赛学生人数: ");
    scanf(" %d", &n);                 
   
    // int a[n][8],max,min;
    double a[n][8],max,min;
   
    // int ave,sum=0;
    double ave = 0.0,sum = 0.0;
   
    /* 主要是第一个for缺少大括号
    for(i=0;i<n;i++)
        for(j=0;j<8;j++)
    {
        scanf("%lf",&a[i][j]);
    }
    */
    for(i=0;i<n;i++)
    {
        printf("\n学生 %d:", i + 1);
        
        for(j=0;j<8;j++)
        {
            printf("\n评委 %d分数: ", j + 1);
            scanf(" %lf",&a[i][j]);
        }
    }
   
  for(i=0;i<n;i++)
  {
    //sum=max=min=a[i][0];
      sum = 0.0;             // 在统计每位学生之前时,对sum初始化
      max=min=a[i][0];
   
    //for(j=1;j<8;j++)
      for(j=0;j<8;j++)       //j从0开始,才有8位评委分数
      {
          if(a[i][j]>max)
            max=a[i][j];
        
        //else if(a[i][j]<min)
           if(a[i][j]<min)        // 这是另外一种情况,用if就可以了
            min=a[i][j];
         
          sum+=a[i][j];
      }
      ave=(sum-max-min)/6;
      
      //printf("%.lf\n",ave);
      printf("学生%d:ave = %.2lf\n", i + 1, ave);    //主要是%.lf问题,一般平均数保留两位小数,用%.2lf输出,如果不保留小数,用%lf输出
      //return 0;
  }
  
  return 0;
}

还在学习过程中,欢迎指教!
2017-05-05 17:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476659-1-1.html




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

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