鱼C论坛

 找回密码
 立即注册
查看: 1247|回复: 3

除最后一行

[复制链接]
发表于 2023-12-12 16:53:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
怎么除去最后一个空行
#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a[n][n],i,j,sum=0,count;
    double ave;
    for(i=0;i<n;i++)
    {
        for(j=0;j<4;j++)
        {
            scanf("%d",&a[i][j]);
            sum+=a[i][j];
        }
    }
    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[i][j]>=85)
            {
                count++;
            }
        }
        if(count>=2)
        {
            for(j=0;j<3;j++)
            {
                printf("%d ",a[i][j]);
            }
            printf("%d\n",a[i][3]);
        }
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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分以上的学生成绩,成绩之间用空格分开。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[0];  // 假设只计算第一门课程的平均分        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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 05:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表