输入n个数,求其中最大值,最小值,和小于平均数的个数
#include<stdio.h>
int main()
{
int i,n,max,min,count=0,sum=0,a[i];
double average;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",a[i]);
sum=sum+a[i];
}
average=sum/n;
for(i=0;i<n;i++){
if(a[i]<average){
count++;
}
a[0]=min;
if(a[i]>min){
a[i]=min;
}
a[0]=max;
if(a[i]<max){
a[i]=max;
}
}
printf("max=%d,min=%d,average=%.2f,count=%d",max,min,average,count);
return 0;
}
基础语法问题有点多,我修改了一下 你梳理一下自己的思路:
#include<stdio.h>
int main()
{
int i, n, max, min, count = 0, sum = 0, a[10] = {0};
double average;
//scanf_s("%d", &n);
n = 5;
for (i = 0; i < n; i++) {
scanf_s("%d", &a[i]);
sum = sum + a[i];
}
average = sum*1.0 / n;
//应该在这里给min和max赋值
min = a[0];
max = a[0];
for (i = 0; i < n; i++) {
if (a[i] < average) {
count++;
}
//a[0] = min; 循环内部赋这个值想干嘛?
//if (a[i] > min) { 这是在干嘛?
// a[i] = min;
//}
if (a[i] < min)
{
min = a[i];
}
//a[0] = max; 循环内部赋这个值想干嘛?
//if (a[i] < max) { 这是在干嘛
// a[i] = max;
//}
if (a[i] > max)
{
max = a[i];
}
}
printf("max=%d,min=%d,average=%.2f,count=%d", max, min, average, count);
return 0;
}
你要给min和max赋值啊,怎么把min和max写到等号右边去了
有一些问题,帮你改正如下:
#include<stdio.h>
int main()
{
int i, n, max, min, count = 0, sum = 0, a[100]; //定义数组不能用变量
double average;
scanf_s("%d", &n);
for (i = 0; i < n; i++) {
scanf_s("%d", &a[i]);
sum = sum + a[i];
}
average = 1.0*sum / n; //将结果转换为浮点型
min = a[0]; //令第一个数为min
max=a[0]; //令第一个数为max
for (i = 0; i < n; i++) {
if (a[i] < average) {
count++;
}
if (a[i] < min) { //a[i] > min改成a[i] < min
min = a[i]; //将最新的最小值赋给min
}
if (a[i] > max) { //a[i] < max改成a[i] > max
max = a[i]; //将最新的最大值赋给max
}
}
printf("max=%d,min=%d,average=%.2f,count=%d", max, min, average, count);
return 0;
}