학생 성적 통계 (C 사례)

2714 단어 #C
한 반 6 개 학생 5 과목 이 있 습 니 다. 함 수 를 작성 하여 다음 과 같은 기능 을 수행 합 니 다. (1) 함수 average () 는 n 번 째 지정 과목 의 평균 점 수 를 구 합 니 다.(2) 함수 void findfail () 을 사용 하여 2 개 이상 (2 개 포함) 과정 에 불합격 한 학생 을 찾 아 메 인 프로그램 에서 학 번 과 모든 과정 성적 및 평균 성적 을 출력 한다.(3) 함수 void findgood () 는 평균 성적 이 90 점 이상 이거 나 전체 과정 성적 이 85 점 이상 인 학생 을 찾 아 메 인 프로그램 에서 학 번 과 전체 과정 성적 및 평균 성적 을 출력 한다.주 함수 에 데 이 터 를 입력 하고 결 과 를 출력 합 니 다.요구: 가능 한 한 지침 을 사용 하 세 요.
#include "stdafx.h"
void average(int *p_stu0)// n         
{
    int i,sum=0;
    for(i=0;i<6;i++)
    {
        sum+=*p_stu0;
        p_stu0++;
    }
    printf("%4.1f
",sum/6.0); } void findfail(int(*p_stu1)[6],int *p_fail) { int h,i; for(i=0;i<6;i++)//lie....yigexuesheng chengji { int j=0; for(h=1;h<6;h++)//hang....yimenke chengji { if(*(*(p_stu1+h)+i)<60) j++; if(j==2) { *(p_fail+i)=1; break; } } } } void findgood(int(*p_stu2)[6],int* p_good,double* p0)//p0 { int h,i,sum[6]={}; for(h=0;h<6;h++)//6 { int j=0; for(i=1;i<6;i++)// { if(*(*(p_stu2+i)+h)>85) j++; sum[h]+=*(*(p_stu2+i)+h); } if(j==5) *(p_good+h)=1; } for(h=0;h<6;h++) { *(p0+h)=sum[h]/5.0; if(*(p0+h)>85 && *(p_good+h)!=1) *(p_good+h)=1; } } void main() { int i,j,k; int stu[6][6]={};// : 、 ; , ; printf("
"); for(i=0;i<6;i++) { for(j=0;j<6;j++) scanf("%d",&stu[j][i]);// , ; printf("
"); } printf(" , n:"); int n; scanf("%d",&n); average(&stu[n][0]); printf(" 2 ( 2 ) :
"); int fail[6]={}; findfail(stu,fail); for(i=0;i<6;i++) { if(fail[i]==1) { int sum=0; printf("%03d ",stu[0][i]); for(k=1;k<6;k++) { printf("%02d ",stu[k][i]); sum+=stu[k][i]; } printf("%4.1f
",sum/5.0); } } printf(" 90 85 :
"); double ave_g[6]={}; int good[6]={}; findgood(stu,good,ave_g); for(i=0;i<6;i++) { if(good[i]==1) { printf("%03d ",stu[0][i]); for(k=1;k<6;k++) printf("%02d ",stu[k][i]); printf("%4.1f
",ave_g[i]); } } }

좋은 웹페이지 즐겨찾기