编写一个程序,循环从键盘接收一批学生的某门课的成绩,并依次保存在数组score的相应元素中,直到输入的成绩为999时结束。

/*

编写一个程序,循环从键盘接收一批学生的某门课的成绩,并依次保存在数组score的相应元素中,直到输入的成绩为999时结束。

 1)对成绩按从高到低排序,然后顺序输出排序后的所有学生的成绩,

 2)再输入一个学生的成绩,并插入排序后的成绩表中并保持有序,最后再输出所有学生的成绩

 3)再输入一个成绩,并从数组中删除与该数相同的所有同学成绩,最后输出最终的成绩表

*/

#include <stdio.h>

#define N 1000

int I;


int main(void)

{

      int i=0,n=0;

      float score[N];

      for(i=0;;i++)

      {

            printf("输入第%d个学生的成绩:",i+1);

            scanf("%f",&score[i]);

            if(score[i]==999)

                 break;

      }//输入说有的成绩

      int j;

      for(n=0;n<i-1;n++)

     {

           for(j=n+1;j<i;j++)

          {

                int temp;

                if(score[n]<score[j])

                {

                       temp=score[n];

                       score[n]=score[j];

                       score[j]=temp;

                }

          }

     }//冒泡算法排序

      printf("从高到底分数排序为:\n");

      for(n=0;n<i;n++)printf("%7.2f ",score[n]);

             printf("\n");//输出排序后的成绩

      I=i;

      printf("请输入这个学生的成绩:");

      scanf("%f",&score[i]);

      I=I+1;

      for(n=0;n<I-1;n++)

     {

           for(j=n+1;j<I;j++)

           {

                 int temp;

                 if(score[n]<score[j])

                {

                       temp=score[n];

                       score[n]=score[j];

                       score[j]=temp;

                }

          }

     }

     printf("从高到底分数排序为:\n");

     for(n=0;n<I;n++)

            printf("%7.2f ",score[n]);

     printf("\n你想删除的分数:");

     float dnumber;

     scanf("%f",&dnumber);

     for(i=0;i<I;i++)

     {

           if(dnumber==score[i])

                  i++;

           else 

                  printf("%7.2f ",score[i]);

     }

    return 0;

}


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以先定义一个4行3列的二维数组,用来存储4个学生3成绩。然后通过循环,从键盘输入每个学生的3成绩,将其存储到数组。接着再通过循环,计算每个学生的3的平均成绩,并将结果输出。具体实现可以参考以下代码: ```python # 定义一个4行3列的二维数组 scores = [[] * 3 for i in range(4)] # 从键盘输入每个学生的3成绩 for i in range(4): print("请输入第%d个学生的3成绩:" % (i+1)) for j in range(3): scores[i][j] = int(input("请输入第%d成绩:" % (j+1))) # 计算每个学生的3的平均成绩,并输出结果 for i in range(4): avg_score = sum(scores[i]) / 3 print("第%d个学生的平均成绩为:%.2f" % (i+1, avg_score)) ``` 运行程序后,可以依次输入每个学生的3成绩,然后程序会计算每个学生的3的平均成绩,并输出结果。 ### 回答2: 这个问题需要采用编程思路来回答。我们可以通过以下步骤实现: 1. 定义一个二维数组来存储学生成绩数组的大小为4x3,即4个学生,每个学生有3成绩。 ``` int score[4][3]; ``` 2. 使用循环结构从键盘输入每个学生成绩。 ``` for(int i=0; i<4; i++) { cout << "请输入第" << i+1 << "个学生成绩:" << endl; for(int j=0; j<3; j++) { cin >> score[i][j]; } } ``` 3. 计算每个学生的平均成绩。使用双重循环遍历二维数组,计算每个学生的总分,再按3程平均得到平均成绩。 ``` for(int i=0; i<4; i++) { int sum = 0; for(int j=0; j<3; j++) { sum += score[i][j]; } double avg = sum / 3.0; cout << "第" << i+1 << "个学生的平均成绩为:" << avg << endl; } ``` 4. 输出每个学生的平均成绩。 完整代码如下: ``` #include <iostream> using namespace std; int main() { int score[4][3]; for(int i=0; i<4; i++) { cout << "请输入第" << i+1 << "个学生成绩:" << endl; for(int j=0; j<3; j++) { cin >> score[i][j]; } } for(int i=0; i<4; i++) { int sum = 0; for(int j=0; j<3; j++) { sum += score[i][j]; } double avg = sum / 3.0; cout << "第" << i+1 << "个学生的平均成绩为:" << avg << endl; } return 0; } ``` ### 回答3: 这道题目是一个典型的计算型题目,需要我们使用数组循环结构来解决。我们先定义一个二维数组,将学生程的成绩存储起来,然后再用循环结构来遍历数组,计算每个学生的平均成绩。 具体实现步骤如下: 1. 定义一个二维数组,其第一维表示学生,第二维表示程,可以写成 int score[4][3]。 2. 使用循环结构,从键盘输入每个学生的三成绩,并存储到数组,可以使用 for 循环嵌套来实现。 3. 计算每个学生的三平均成绩,可以使用另外一个循环结构遍历数组,累加每个学生的三成绩,然后除以 3,即可得到平均成绩。 4. 输出每个学生的三平均成绩,可以再次使用循环结构遍历数组,输出每个学生的平均成绩。 下面是一个示例代码,可以供大家参考: ``` #include <stdio.h> int main() { int score[4][3]; // 定义二维数组 // 从键盘输入每个学生的三成绩 for (int i = 0; i < 4; i++) { printf("请输入第%d个学生的三成绩:\n", i+1); for (int j = 0; j < 3; j++) { scanf("%d", &score[i][j]); } } // 计算每个学生的三平均成绩 for (int i = 0; i < 4; i++) { int sum = 0; for (int j = 0; j < 3; j++) { sum += score[i][j]; } double avg = (double)sum / 3; printf("第%d个学生的三平均成绩为:%.2f\n", i+1, avg); } return 0; } ``` 以上就是本题的解题思路和示例代码。需要注意的是,输入输出的格式可以根据需要进行修改,而计算平均成绩的代码需要注意类型转换,以保证结果的准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值