输入10个数组,输出平均值及大于平均值的数

aizhangqing 2013-01-03 09:24:11
#include<stdio.h>
#define N 3
void main()
{ int a[N],i,j,ave,sum=0;
printf("Enter\n");
for(i=0;i<N;i++)
{ scanf("%d",&a[i]);
sum+=a[i];
ave=sum/N;
}
printf("%d\n",ave);
for(i=0;i<N;i++)
if(a[j]>ave)
printf("%d\n ",a[j]);
}

上机考试考到这道题,不明白为什么一个for循环语句总是输不出来?
还有我想请教一下如果不使用数组做着道题,具体形式是怎样?
...全文
4606 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackgo163 2013-01-06
  • 打赏
  • 举报
回复
很基本的问题,你大意弄成这样的,求ave应该放在for外面,其次是你第二个循环变量用i,对比输出时候却用j,j未初始化,是一个不确定的值
疯狂的红豆 2013-01-06
  • 打赏
  • 举报
回复

void main()  
{
	int a[N],i,j,ave,sum=0;
	printf("Enter\n");
    for(i=0;i<N;i++)
    {
	   scanf("%d",&a[i]);
	   sum+=a[i];
	   ave=sum/N;  //两个整形这么除 会丢失精度的最好用浮点数
	}

	printf("%d\n",ave);

	for(i=0;i<N;i++)
		if(a[j]>ave) //j还没初始化呢,你循环体里用的是i怎么手误写成a[j]了
			printf("%d\n ",a[j]);      
}
oOverdrive 2013-01-05
  • 打赏
  • 举报
回复
#include<stdio.h> #define N 3 void main() { int a[N],i,j,ave,sum=0; printf("Enter\n"); for(i=0;i<N;i++) { scanf("%d",&a[i]); sum+=a[i]; } ave=sum/N; printf("%d\n",ave); for(i=0;i<N;i++) if(a[i]>ave) printf("%d\n ",a[i]); }
hackbuteer1 2013-01-05
  • 打赏
  • 举报
回复
2楼的第二for循环中的循环计数器i修改为j就可以了
abc41106 2013-01-04
  • 打赏
  • 举报
回复
楼主参照2楼、3楼2位大神的解释,再看看自己的程序,就知道怎么回事了。 如果不需要记录每个值的话,这个题可以不用数组
#include<stdio.h>
 #define N 10 
 void main()  
 {   int a,max=-2147483647,i,j,ave,sum=0;//这里max尽量小,保证小于输入的最大值    
     printf("Enter\n");    
     for(i=0;i<N;i++)    
     {     
         scanf("%d",&a);    
         sum+=a;
         if(a>max)
            max=a;
            
      }    
      ave=sum/N;  //放外面
      printf("%d\n",ave);     
      printf("%d\n ",max);         
 }
 
小布 2013-01-04
  • 打赏
  • 举报
回复
引用 2 楼 kuzuozhou 的回复:
C/C++ code?123456789101112131415161718#include<stdio.h> #define N 3 void main() { int a[N],i,j,ave,sum=0; printf("Enter\n"); for(i=0;i<N;i++) { ……
楼主注意循环体
千树之影 2013-01-04
  • 打赏
  • 举报
回复
第二个for循环的循环变量改成j
syscofield 2013-01-04
  • 打赏
  • 举报
回复
1,第二个for的循环变量有问题 2,ave放在外面 3,平均值用double类型。
赵4老师 2013-01-04
  • 打赏
  • 举报
回复
数组元素和平均值都应用double类型。
pengfoo 2013-01-03
  • 打赏
  • 举报
回复
#include<stdio.h>
 #define N 3  
 void main()  
 {   int a[N],i,j,ave,sum=0;    
       printf("Enter\n");    
     for(i=0;i<N;i++)    
     {     
            scanf("%d",&a[i]);    
            sum+=a[i];
            
      }    
      ave=sum/N;  //放外面
       printf("%d\n",ave);    
     for(i=0;i<N;i++)      
  if(a[j]>ave)        
  printf("%d\n ",a[j]);         
 }
 
sduxiaoxiang 2013-01-03
  • 打赏
  • 举报
回复
不是10个数么 #define N 10 好多方法吧 指针、vector、list。。。。。

64,645

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧