智能2112杨阳
题目要求及输入输出格式
本题要求编写程序,将输入的n个整数存入数组a中,然后计算这些数的平均值,再输出所有大于平均值的数。
输入格式:
输入在第1行中给出一个正整数n(1≤n≤10),第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。
输出格式:
输出在第1行给出平均值,保留2位小数。在第2行输出所有大于平均值的数,每个数的后面有一个空格;如果没有满足条件的数,则输出空行。
如果输入的n不在有效范围内,则在一行中输出"Invalid."。
输入样例1:
10
55 23 8 11 22 89 0 -1 78 186
输出样例1:
47.10
55 89 78 186
输入样例2:
0
输出样例2:
Invalid.
题目分析
首先我们要运用循环求出输入数的和及它们的平均数,再运用数组和循环 将每个数和平均数做比较,将大于平均数的输出,不满足的输出'Invalid.',同时要注意小数点和空行,避免编译失败。
代码
#include<stdio.h>
int main()
{
int n,i;
double sum=0,average=0;
int a[10];
scanf("%d",&n);
if(n>=1&&n<=10)
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
sum = sum +a[i];
}
average = sum/n;
printf("%.2f\n",average);
for(i=0;i<n;i++)
{
if(a[i]>average)
{
printf("%d ",a[i]);
}
}
printf("\n");
}else{
printf("Invalid.");
}
}
总结
本题是一道运用数组求和及平均数的相关题目,需要对数组有一定的了解和认识,要能熟练运用数组求和及平均值,同时要加强对C语言的理解和练习,要注意题目的要求,比如小数点的位数,不满足情况的输出格式以及换行等细节,要避免在这些小问题上出错,当然我们仍要继续坚持对编程的练习。