ZimingOSU 2022-12-01 17:19 采纳率: 100%
浏览 27
已结题

求C++ I/O程序的编写示例

输入:
7
第一行Pb-193 3000 300 150
第二行Pb-190 3000 71 35.5
第三行Pb-186 3000 4.86 2.43
第四行Th-225 1500 523 261.5
第五行Th-237 1500 290 145
第六行O-16 2000 122.24 61.12
第七行Ti-51 2500 346 178
从左往右数为一到四列

输出:

  1. 分别输出第三列最大和最小的值的第一列数据
  2. 输出第二列所有数据的二分之一的平均数
  3. 输出第三列减第四列小于100的第一列数据
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-12-01 17:22
    关注

    定义一个数据结构,把每行数据拆分到数据结构数组就简单了啊
    这里的第3列是从1开始算起,还是从0开始算起?
    第4列减去第3列小于100,无论从0开始算起,还是从1开始算起,好像都满足,而且都是负数

    #include <iostream>
    using namespace std;
    
    
    typedef struct _info
    {
        char s[20];
        int a1,a2;
        float a3,a4;
    }info;
    
    void fun1(info *data,int n)
    {
        int max;
        for(int i=0;i<n;i++)
        {
            if(i==0 || data[i].a3 > data[max].a3)
                max = i;
        }
        cout<<"第三列最大的值的第一列数据是:"<<data[max].a1<<endl;
    }
    
    void fun2(info *data,int n)
    {
        int min;
        for(int i=0;i<n;i++)
        {
            if(i==0 || data[i].a3 < data[min].a3)
                min = i;
        }
        cout<<"第三列最小的值的第一列数据是:"<<data[min].a1<<endl;
    }
    
    void fun3(info *data,int n)
    {
        int sum=0;
        for(int i=0;i<n;i++)
        {
            sum += data[i].a2;
        }
        cout<<"第二列所有数据的二分之一的平均数是:"<<sum/(2.0*n)<<endl;
    }
    
    void fun4(info *data,int n)
    {
        cout<<"第三列减第四列小于100的第一列数据分别是:\n";
        for(int i=0;i<n;i++)
        {
            if((data[i].a3-data[i].a4) < 100)
                cout<<data[i].a1<<endl;
        }
    }
    
    int main()
    {
        info data[100];
        int n;
        cin>>n;
        getchar();
        char s[1000];
        for(int i=0;i<n;i++)
        {
            gets(s);
            char * p = strtok(s,"-");
            strcpy(data[i].s,p);
            char *q = strtok(NULL,"-");
            sscanf(q,"%d %d %f %f",&data[i].a1,&data[i].a2,&data[i].a3,&data[i].a4);
        }
        fun1(data,n);
        fun2(data,n);
        fun3(data,n);
        fun4(data,n);
        return 0;
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 修改了问题 12月1日
  • 创建了问题 12月1日

悬赏问题

  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?