大吱佬 2021-01-30 21:45 采纳率: 0%
浏览 38

关于c/c++的struct中不声明出现错误的情况

在写CCF的201503-2 数字排序发现的

原始代码

struct X //定义一个新的类型
{
    int data;
    int num;
};

修改代码

struct X //定义一个新的类型
{
    int data=0;
    int num=0;
};

在codeblock前后输出结果都是一样的,但是CCF提交以后原始代码出错误,一定要声明吗,可是为什么呢

  • 写回答

3条回答 默认 最新

  • 大吱佬 2021-01-30 21:45
    关注

    #include <iostream>
    using namespace std;
    struct X //定义一个新的类型
    {
        int data=0;
        int num=0;
    };
    int main()
    {
        int n;
        cin>>n;
        int i,j,m=0;
        int a;
        struct X x[1000];
        cin>>x[0].data;
        int flag=0;
        for(i=1; i<n; i++)
        {
            flag=0;
            cin>>a;
            for(j=0; j<=i; j++)
            {
                if(x[j].data==a) //存在
                {
                    x[j].num++;
                    flag=1;
                    break;
                }//计数+1
            }
            if(flag==0)
                x[++m].data=a;
        }
        int num=x[0].num;
        int data=x[0].data;
        for(i=0; i<=m; i++)
        {
            for(j=0; j<m-i; j++)
            {
                if(x[j].num>x[j+1].num)
                {
                    data=x[j].data;
                    num=x[j].num;
                    x[j].data=x[j+1].data;
                    x[j].num=x[j+1].num;
                    x[j+1].data=data;
                    x[j+1].num=num;

                }
            }
        }
       for(i=0; i<=m; i++)
        {
            for(j=0; j<m-i; j++)
            {
                if(x[j].data<x[j+1].data&&x[j].num==x[j+1].num)
                {
                    data=x[j].data;
                    num=x[j].num;
                    x[j].data=x[j+1].data;
                    x[j].num=x[j+1].num;
                    x[j+1].data=data;
                    x[j+1].num=num;
                }
            }
        }
        for(i=m; i>=0; i--)
        {
            cout<<x[i].data<<" "<<x[i].num+1<<endl;
        }
        return 0;
    }
     

    评论

报告相同问题?

悬赏问题

  • ¥15 岛津txt格式文件转nirs格式
  • ¥15 石墨烯磁表面等离子体
  • ¥15 angular 项目无法启动
  • ¥15 安装wampserver,图标绿色,但是无法进入软件
  • ¥15 C++ MFC 标准库 加密解密解惑
  • ¥15 两条数据合并成一条数据
  • ¥15 Ubuntu虚拟机设置
  • ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项
  • ¥15 electron 如何实现自定义安装界面
  • ¥15 关于#linux#的问题:子进程C运行“ls –l”命令,且显示“C运行ls-l命令”(语言-c语言)