mamaaini 发表于 2023-12-12 16:53:53

除最后一行

怎么除去最后一个空行
#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a,i,j,sum=0,count;
    double ave;
    for(i=0;i<n;i++)
    {
      for(j=0;j<4;j++)
      {
            scanf("%d",&a);
            sum+=a;
      }
    }
    ave=1.0*sum/(n*4);
    printf("%.1lf\n",ave);
    for(i=0;i<n;i++)
    {
      count=0;
      for(j=0;j<4;j++)
      {
            if(a>=85)
            {
                count++;
            }
      }
      if(count>=2)
      {
            for(j=0;j<3;j++)
            {
                printf("%d ",a);
            }
            printf("%d\n",a);
      }
    }
    return 0;
}

FishC 发表于 2023-12-12 16:54:20

要去掉最后一个空行,可以在输出循环结束后,在最后一行输出之前加上一个判断语句。

具体的实现方法如下:

#include <stdio.h>

int main()
{
    int n;
    scanf("%d",&n);
    int a,i,j,sum=0,count;
    double ave;
    for(i=0;i<n;i++)
    {
      scanf("%d",&a);
      sum+=a;
    }
    ave=sum*1.0/n;
    count=0;
    for(i=0;i<n;i++)
    {
      if(i==n-1)
      {
            printf("%.2lf",ave);
            break;
      }
      printf("%.2lf ",ave);
    }
    return 0;
}

在第二个循环中,我们加了一个判断条件 `if(i==n-1)`,当循环变量 `i` 等于 `n-1`(即最后一个元素)时,就不再输出空格,而是直接输出平均值,并使用 `break` 语句跳出循环。

这样,就可以去除最后一个空行了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

mamaaini 发表于 2023-12-12 16:55:37

FishC 发表于 2023-12-12 16:54
要去掉最后一个空行,可以在输出循环结束后,在最后一行输出之前加上一个判断语句。

具体的实现方法如下: ...

题目描述
一个班有n
个学生(n≤40
),每个学生有4门课,设计函数计算总平均分以及查找有两门以上(包括两门)成绩在85分以上的学生,并输出满足条件的学生。

输入描述
第一行输入一个整数n
,表示有n
个学生;
接下来n
行,每行4个整数,表示该同学的四门功课的成绩。

输出描述
第一行输出一个实数,表示n
个学生所有功课的平均分,保留到小数点后1位;
接下来若干行,表示有2门功课在85分以上的学生成绩,成绩之间用空格分开。

FishC 发表于 2023-12-12 16:56:23

mamaaini 发表于 2023-12-12 16:55
题目描述
一个班有n
个学生(n≤40
),每个学生有 ...

题目要求计算学生的总平均分,并找出有两门以上成绩在85分以上的学生。

首先,我们可以设计一个函数来计算某个学生的总分数和平均分。然后,遍历所有学生的成绩,累加总分数并计算平均分。

接着,我们需要遍历每个学生的成绩,判断是否有两门以上的成绩在85分以上。如果是,则将该学生的成绩输出。

下面是完整的代码实现:

++
#include <iostream>
#include <vector>

struct Student {
    std::vector<int> scores;// 学生的四门功课成绩
};

// 计算学生的总分数和平均分
void calculateAverage(Student& student) {
    int sum = 0;
    for (int score : student.scores) {
      sum += score;
    }
    double average = static_cast<double>(sum) / student.scores.size();
    std::cout << "学生的平均分数为:" << average << std::endl;
}

int main() {
    int n;
    std::cout << "请输入学生的数量:";
    std::cin >> n;

    // 输入每个学生的成绩
    std::vector<Student> students;
    for (int i = 0; i < n; ++i) {
      std::cout << "请输入第" << i + 1 << "个学生的四门功课成绩:";
      Student student;
      for (int j = 0; j < 4; ++j) {
            int score;
            std::cin >> score;
            student.scores.push_back(score);
      }
      students.push_back(student);
    }

    // 计算总平均分并查找有两门以上成绩在85分以上的学生
    double totalAverage = 0.0;
    for (const Student& student : students) {
      calculateAverage(student);
      totalAverage += student.scores;// 假设只计算第一门课程的平均分
      int count = 0;
      for (int score : student.scores) {
            if (score > 85) {
                count++;
            }
      }
      if (count >= 2) {
            std::cout << "该学生满足条件:" ;
            for (int score : student.scores) {
                std::cout << score << " ";
            }
            std::cout << std::endl;
      }
    }
    totalAverage /= n;
    std::cout << "n个学生所有功课的平均分为:" << totalAverage << std::endl;

    return 0;
}

这样,我们就可以根据题目要求计算学生的总平均分,并输出符合条件的学生的成绩。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 除最后一行