C语言编程打印出所有低于平均分的分数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程打印出所有低于平均分的分数相关的知识,希望对你有一定的参考价值。
Description 输入n个成绩,打印出所有低于平均分的分数Input 多个测试数据
每个测试数据一行,在这行中先输入分数的个数n(1<=n<=100),然后紧跟着输入n个整数(代表分数)Output 对于每个测试数据,输出一行按照输入顺序输出所有低于(<)平均分的分数,中间用一个空格隔开,如果没有低于平均分的那么只输出一个空行Sample Input 3 40 50 602 90 804 10 10 90 80 Sample Output 408010 10
void main()
int n;
double temp=0;
double ave=0;
printf("输入分数的个数:");
scanf("%d",&n);
printf("输入%d个整数:",n);
int num[100];
for (int i=0;i<n;i++)
scanf("%d",&num[i]);
temp+=num[i];
ave=(temp/((double)n));
for (int j=0;j<n;j++)
if(num[j]<ave)
printf( "%d ", num[j]);
printf("\n");
参考技术A 这个程序大部分都是对的,但是,没有考虑到counter的取值范围,所以程序是能够通过的,但是结果却对不是你想要的结果。int 的取值范围是0~127,所以应该改用long int,float ,double.这就要看你的程序要的范围来定了。 参考技术B # include <stdio.h>
# include <stdlib.h>
main()
int counter;
int num;
int avg;
int i;
int a[100];
FILE* fin;
FILE* fout;
fin = fopen("a.txt","r");
while(!feof(fin))
num =0;
avg =0;
fscanf(fin,"%d",&counter);
for(i = 0; i <counter; i++)
fscanf(fin,"%d",a[i])
num += a[i];
fin++;
avg = num / counter;
for(i = 0; i <counter; i++)
if(a[i] < avg)
fprintf(fout,"%d ",a[i]);
fout++;
fprintf(fout,'\n');
fclose(fin);
fclose(fout);
Problem H: 零起点学算法87——打印所有低于平均分的分数
#include<stdio.h> int main(){ int n,a[200],b[200]; while(scanf("%d",&n)!=EOF){ int s=0; for(int i=0;i<n;i++){ scanf("%d",&a[i]); s+=a[i]; } float ave=(float)s/n; int j=0; for(int i=0;i<n;i++){ if(a[i]<ave){ b[j]=a[i]; j++; } } if(j==0) printf(" "); else{ for(int i=0;i<j-1;i++){ printf("%d ",b[i]); } printf("%d ",b[j-1]); } } return 0; }
以上是关于C语言编程打印出所有低于平均分的分数的主要内容,如果未能解决你的问题,请参考以下文章
C语言试题十二之m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。