Devilあ 2022-03-27 12:48 采纳率: 72.7%
浏览 10
已结题

c++定义语句位置不同为什么运行结果不同

问题遇到的现象和发生背景 展开

题目描述
人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。

输入格式
第一行输入一个整数 nn,表示鱼的数目。

第二行内输入 nn 个整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度。

输出格式
行内输出 nn 个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。

问题相关代码,请勿粘贴截图 #include

using namespace std;
int n, a[101], b[101];
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
for (int i = 1; i <= n; i++)
{
for (int j = i; j >= 1; j--)
{
if (a[j] < a[i])
{
b[i]++;
}
}
}
for (int i = 1; i <= n; i++)
{
cout << b[i] << ' ';
}
return 0;
}

运行结果及报错内容 这个代码是正确的,但是将int n, a[101], b[101];放到主函数中会崩溃
我的解答思路和尝试过的方法
我想要达到的结果

int n, a[101], b[101];这个语句放到主函数内和主函数外有什么区别

  • 写回答

1条回答 默认 最新

  • 关注

    放在main外,所有数值初始化为0,数组成员初始化为0,且为静态static,谁都能用。

    放在main里,为local,只有main能用,且初始化归程序员管,如果不管,就是垃圾数据。

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int n = 0;
        int a[5] = {0};
        int b[5] = {0};
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            cin >> a[i];
        }
        for (int i = 1; i <= n; i++)
        {
            for (int j = i; j >= 1; j--)
            {
                if (a[j] < a[i])
                {
                    b[i]++;
                }
            }
        }
        for (int i = 1; i <= n; i++)
        {
            cout << b[i] << ' ';
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 已采纳回答 3月27日
  • 创建了问题 3月27日

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题