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

关于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 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 ANSYS分析简单钎焊问题
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开
  • ¥15 在centos7安装conda
  • ¥15 c#调用yolo3 dll文件获取的数据对不上
  • ¥20 WPF 如何实现多语言,label 和cs(live Charts)中是否都能翻译
  • ¥15 STM32F103上电短路问题
  • ¥15 打开软件提示错误:failed to get wglChoosePixelFormatARB