当前位置:编程学习 > C/C++ >>

求c语言程序

定义一个二维数组 用函数实现下列功能
 1在键盘输入10个学生的3门课成绩 并显示(main)
 2计算每个学生平均分并显示
 3每门课平均分并显示
  4将学生的平均分存入一维数组并排序
要求输入1得到第一个答案 输入2得到第二个答案 以此类推
 c语言二级的水准编
追问:麻烦把你q留下 可以吗 我想问下
答案:#include <stdio.h>这个程序是用纯C写的,以前回答过类似的问题,不过没有把函数单列出来,这里按照你的要求重新写过了,呵呵。我已在dev c++环境下测试通过。


#include <stdio.h>

void print(int score[][3])
{
    int i;     
    for(i = 0; i < 10; i ++)
        printf("第 %d 位学生的三门成绩: %d %d %d\n", i+1, score[i][0], score[i][1], score[i][2]);   


void average_score_per_student(float average[], int score[][3])//求值并显示每个学生的平均分
{
     int i;
     //求每个学生的平均分 
     for(i = 0; i < 10; i ++)
     {
         average[i] = (float)(score[i][0] + score[i][1] + score[i][2]) / 3.0;
         printf("第 %d 位学生的平均分是: %f\n", i + 1, average[i]);  
     }
}

void average_score_per_course(int score[][3]){
    //计算每门课程的平均分,三门课程的平均分存在变量a, b, c中
    float a = 0.0, b = 0.0, c = 0.0;
    int i;
    for(i = 0; i < 10; i ++) 
    {
        a += score[i][0];
        b += score[i][1];
        c += score[i][2];
    }
    a /= 10.0;  b /= 10.0; c /= 10.0;
    printf("三门课程的平均分是: %f %f %f\n", a, b, c);
}

void sort(float average[])//排序
{
     int i, j;
     for(i = 0; i < 9; i ++)
        for(j = i + 1; j < 10; j ++)
        {
            float t;
            if(average[i] < average[j])
            {
                t = average[i] ; average[i] = average[j]; average[j] = t;
            }
        }
}

int main()
{
    int score[10][3]; //学生的三门分数 
    float average[10]; //存储平均分的一位数组 
    //输入学生的三门课分数
    int i;     
    for(i = 0; i < 10; i ++)
    {
        printf("请输入第 %d 位学生的三门成绩: ", i+1);
        int a, b, c;
        scanf("%d %d %d", &a, &b, &c);
        score[i][0] = a;
        score[i][1] = b;
        score[i][2] = c;
                    }
        print(score);//显示学生的成绩         average_score_per_student(average, score); //求每个学生平均分
    average_score_per_course(score);   //求每个学科平均分
    sort(average);
        printf("请输入要第几个答案: ");
    int num;
    scanf("%d", &num); 
    printf("第%d学生的平均分是: %f\n", num, average[num - 1]);   
    return 0;



#include<stdio.h>
void main()
{
 int sum[10][3];//学生我成绩
 int an[10];//平均分
 int i,j,and=0;
 for(i=0;i<10;i++)
 {
  printf("请输入弟%d名学生的成绩  :",i+1);
  for(j=0;j<3;j++)
  {
   scanf("%d",&sum[i][j]);
  }
 }
 printf("---------输入的学生成绩为------------:  \n");
 for(i=0;i<10;i++)
 {
  printf("弟%d名学生的成绩为  :",i+1);
  for(j=0;j<3;j++)
  {
   printf("%d  ",sum[i][j]);
  }
  printf("\n");
 }
 printf("---------每个学生的平均分为---------:  \n");
 for(i=0;i<10;i++)
 {
  for(j=0;j<3;j++)
  {
   and=and+sum[i][j];
  }
  an[i]=and/3;
  and=0;
  printf("弟%d名学生的平均分为  :%d\n",i+1,an[i]);
 }
 printf("---------每门课平均分为---------:  \n");
 and=0;
 for(j=0;j<3;j++)
 {
  for(i=0;i<10;i++)
  {
   and=and+sum[i][j];
  }
  and=and/10;
  printf("弟%d门课平均分为:  %d\n",j+1,and);
  and=0;
 }
 printf("---------学生的平均分排序结果为---------:  \n");
 int a=0;
 for(i=0;i<9;i++)
 {
  for(j=1+i;j<10;j++)
  { 
   if(an[i]>an[j])
   {
    a=an[i];
    an[i]=an[j];
    an[j]=a;
   }
  }
 }
 for(i=0;i<10;i++)
 {
  printf("%d  ",an[i]);
 }
 printf("\n");
}

上一个:学习电脑编程C语言
下一个:C语言程序求助!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,