qq_43157176 2022-02-27 11:26 采纳率: 100%
浏览 69
已结题

#c语言#的问题:将成绩信息逐行输出到控制台

(可以的话请加上注释方便理解)
题目内容:
该程序读入txt文本文档内容后,按成绩由高到低的顺序,以“姓名
== 分数”的格式,将10位同学的成绩信息逐行输出到控制台,一个同学一行。
要求“姓名”左对齐,“分数”右对齐。

**输入格式:
**
输出格式:
按成绩由高到低的顺序
“姓名”左对齐,“分数”右对齐
一个同学一行。

输入样例:
84
周幺妹
100
陈六
76
万知希

**输出样例:
陈六 == 100
周幺妹 == 84
万知希 == 76

  • 写回答

2条回答 默认 最新

  • 关注

    img

    数据文件in.txt:

    84
    周幺妹
    100
    陈六
    76
    万知希
    
    

    代码如下:

    #include <stdio.h>
    
    struct Student 
    {
        char name[30];
        int score;
    };
    
    int main()
    {
        struct Student stu[10],tmp;
        int n=0,i,j,res1,res2;
        FILE* fp=0;
        fp =fopen("in.txt","r");
        if(fp==0)
        {
            printf("文件读取失败\n");
            return 0;
        }
        while(!feof(fp))
        {
            //读取成绩和姓名
            if(fscanf(fp,"%d",&stu[n].score) && stu[n].score>=0) //保证读取的数据正确
            {
                if(fscanf(fp,"%s",stu[n].name))
                    n++;
            }
        }
        fclose(fp);
        //冒泡排序
        for(i=0;i<n-1;i++)
        {
            for (j=0;j<n-1-i;j++)
            {
                if(stu[j].score < stu[j+1].score)//交换
                {
                    tmp = stu[j];
                    stu[j] = stu[j+1];
                    stu[j+1] = tmp;
                }
            }
        }
        //输出
        for(i=0;i<n;i++)
            printf("%-8s==%4d\n",stu[i].name,stu[i].score); //-8表示左对齐,占8给字节,4d表示右对齐,占4给字节
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月2日
  • 已采纳回答 3月2日
  • 修改了问题 2月27日
  • 修改了问题 2月27日
  • 展开全部

悬赏问题

  • ¥30 Windows Server 2016利用兩張網卡處理兩個不同網絡
  • ¥15 Python中knn问题
  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源