冷心__01 2020-04-30 14:47 采纳率: 100%
浏览 232
已采纳

整行读入字符串到结构数组中元素的字符数组里

  1. 问题要求:编写一个完整的程序,对输入的n(n<100)本书进行排序并输出。
  2. 程序输入:程序首先输入一个正整数n,然后输入n本书的信息,每本书用两行输入,第一行输入书的名称(书名最长不超过50个字符,中间可能有空格)第二行输入价格,价格为浮点数。
  3. 程序输出:程序要求对n本书按价格从低到高排序,如果价格相同,则按书名(字符串)字典序从小到大排序。最后输出排序结果,每行输出一本书的信息,首先输出价格,然后输出书名,中间用一个英文逗号和一个空格分开。
#include <string.h>
#include <iostream>

using namespace std;
struct BOOK{
    char name[51];
    float price;
};
void sort(BOOK a[],int n)
{
    BOOK tmp;
    for(int i=0;i<n-1;i++)
    {
        for(int j=0;j<n-2;j++)
        {
            if((a[j].price)>(a[j+1].price))
            {
                tmp=a[j];
                a[j]=a[j+1];
                a[j+1]=tmp;
            }
            if((a[j].price)==(a[j+1].price))
            {
                int flag=strcmp(a[j].name,a[j+1].name);
                if(flag>0)
                {
                    tmp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=tmp;
                }
            }
        }
    }
}
//请在此添加代码,实现书籍数据的输入、排序和输出
/********** Begin *********/
int main()
{
    int n;//n-the number of book
    cin>>n;
    BOOK a[100];
    for(int i=0;i<n;i++)
    {
        cin.getline(a[i].name,51);
        cin>>a[i].price;
    }
    sort(a,n);
    for(int i=0;i<n;i++)
    {
        cout << a[i].price << ", "<< a[i].name <<endl;
    }
    return 0;
}
/********** End **********/

运行结果:
图片说明

问题:想知道程序哪里错了,是输入部分的错误吗?正确的程序应该是什么呢?

  • 写回答

1条回答 默认 最新

  • 白色一大坨 2020-04-30 16:33
    关注
    int main()
    {
        int n;//n-the number of book
        cin >> n;
        cin.clear();
        cin.sync();
        BOOK a[100];
        string input;
        for (int i = 0; i < n; i++)
        {
            cin.getline(a[i].name, 51);
            cin >> a[i].price;
            cin.clear();
            cin.sync();
        }
        sort(a, n);
        for (int i = 0; i < n; i++)
        {
            cout << a[i].price << ", " << a[i].name << endl;
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题