26 成绩统计
知道怎么算出每个阶段的人数,在输出上出现问题,只能暴力输出;
#include <stdio.h> main() { int a[1111]={0}; int n,E=0,G=0,A=0,P=0,F=0; int k,i=0,j; while(scanf("%d",&n)!=EOF) { if(n>=0&&n<=100) k=n; else k=101; if(k<=100&k>=0) { a[i]=k; i++; } if(a[i]<=59&&a[i]>=0) F++; else if(a[i]>=60&&a[k]<=69) P++; else if(a[i]>=70&a[i]<=79) A++; else if(a[i]>=80&&a[i]<=89) G++; else if(a[i]<=100&a[i]>=90) E++; } for(j=0;j<=i;j++) //输出问题,无法交叉输出,如若分别输出,工作量太大 { if(a[i]<=100&a[i]>=90) printf("%d",a[j]); } }
问题:输出的最后逗号;
突破:用多个数组存储数字,输出时候最后一个数字的单独输出;
每个数组对应一个类,存满
#include<stdio.h> int main() { int a[1000]={0},b[1000]={0},c[1000]={0},d[1000]={0},e[1000]={0}; int i=0,j=0,k=0,l=0,m=0,o; int n; while(scanf("%d",&n)!=EOF) { if(n<=100&n>=90) { a[i]=n; i++; } else if(n<90&&n>=80) { b[j]=n; j++; } else if(n<80&&n>=70) { c[k]=n; k++; } else if(n<70&&n>=60) { d[l]=n; l++; } else if(n<60&&n>=0) { e[m]=n; m++; } } printf("Excellent : %d\n",i); if(i!=0) { for(o=0;o<i-1;o++) printf("%d, ",a[o]); printf("%d\n",a[i-1]); } printf("Good : %d\n",j); if(j!=0) { for(o=0;o<j-1;o++) printf("%d, ",b[o]); printf("%d\n",b[j-1]); } printf("Average : %d\n",k); if(k!=0) { for(o=0;o<k-1;o++) printf("%d, ",c[o]); printf("%d\n",c[k-1]); } printf("Pass : %d\n",l); if(l!=0) { for(o=0;o<l-1;o++) printf("%d, ",d[o]); printf("%d\n",d[l-1]); } printf("Failing : %d\n",m); if(m!=0) { for(o=0;o<m-1;o++) printf("%d, ",e[o]); printf("%d\n",e[m-1]); } }
转载于:https://www.cnblogs.com/zoti007/articles/9977406.html