ZJF010101 2024-08-12 20:47 采纳率: 100%
浏览 2
已结题

C++定义一个长度为一个变量的数组

C++定义一个长度为一个变量的数组,在数组赋值过程中变量莫名发生变化?
如下:这个程序中如果输入100,最后n变成1输出!想不通这是为什么?

#include<iostream>
#include<cmath> 
using namespace std;
const double P=3.14;
int main()
{
    int n,a[n];//1开 
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        a[i]=1;
    }
    cout<<n;
    return 0;
}

img

  • 写回答

2条回答 默认 最新

  • 专家-皆知 2024-08-12 20:48
    关注

    参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。

    首先,我们来解析你的代码和问题。你在代码中遇到的问题与数组的定义和初始化有关。你的数组a[n]是在未知道数组长度n的情况下定义的,这是C++不允许的。你需要在定义数组之前就确定其大小。这是你的代码出问题的主要原因。正确的做法应该是先定义变量n,然后根据n的值来定义数组的大小。此外,你的代码中的注释和符号看起来像是你在尝试描述问题或画流程图,这不应该出现在正常的C++代码中。以下是修改后的代码:

    #include<iostream>
    using namespace std;
    
    int main() {
        int n;  // 先定义变量 n
        cin >> n;  // 输入数组的长度
        int a[n];  // 根据 n 的值定义数组 a 的大小
        for(int i = 0; i < n; i++) {  // 注意这里我们从 0 开始循环,因为 C++ 的数组是从 0 开始索引的
            a[i] = 1;  // 将数组的每个元素赋值为 1
        }
        cout << n;  // 输出数组的长度
        return 0;  // 程序结束
    }
    

    关于你提供的图1和图2,看起来像是你在尝试描述问题或记录错误,但这些内容并不符合标准的C++代码格式。我建议你将问题和代码描述清晰,避免混淆和不必要的符号和注释。如果还有其他问题或需要进一步的解释,请告诉我。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月21日
  • 已采纳回答 8月13日
  • 创建了问题 8月12日

悬赏问题

  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响