注册 登录
编程论坛 C++教室

帮忙看一下这有那错了?

万致远醉帥 发布于 2020-03-30 11:06, 2858 次点击
只有本站会员才能查看附件,请 登录
我用的是VS
14 回复
#2
wmf20142020-03-30 11:11
不支持变长数组,n必须是常数,不能作为变量输入不同的值得到长度不同的数组。
#3
万致远醉帥2020-03-30 11:15
有办法吗?

#4
万致远醉帥2020-03-30 11:18
以下是引用wmf2014在2020-3-30 11:11:29的发言:

不支持变长数组,n必须是常数,不能作为变量输入不同的值得到长度不同的数组。

有其他办法吗?????????????????????????????
#5
lin51616782020-03-30 11:28
变长数组是c99特性
c++没有变长数组
vs不支持c99

你可以考虑用vector 或者 new 或者 malloc
#6
万致远醉帥2020-03-30 11:47
回复 5楼 lin5161678
请说详细一点
#7
叶纤2020-03-30 12:12
[code]
手机端可以啊
#include <array>
#include <iostream>
 
int main()
{size_t n;
std::cin>>n;int a[n];
std::cin>>a[0];
std::cout<<a[0];
    return 0;
}/code]
#8
lin51616782020-03-30 12:25
以下是引用叶纤在2020-3-30 12:12:40的发言:


手机端可以啊
#include <array>
#include <iostream>
 
int main()
{size_t n;
std::cin>>n;int a[n];
std::cin>>a[0];
std::cout<<a[0];
    return 0;
}/code]

这属于编译器扩展了
只在特定编译器有效
我把这种语法叫做编译器方言
#9
叶纤2020-03-30 12:45
那用std::array a{ 想要输入的元素}
#10
万致远醉帥2020-03-30 14:12
只有本站会员才能查看附件,请 登录

还是不行
#11
叶纤2020-03-30 14:30
你知道你想做什么吗?
是想打印Hi,earth
还是想创建一个字符串然后再打印Hi,earth呢?
#12
rjsp2020-03-30 14:30
贴代码,不要贴图

程序代码:
#include <iostream>
#include <algorithm>
#include <vector>
#include <memory>
using namespace std;

int main( void )
{
    size_t n;
    if( !(cin>>n) )
        return 1;

    // 方法一
    vector<int> a( n );
    cout << a[0] << endl;

    // 方法二
    std::unique_ptr<int[]> b( new int[n]{} );
    cout << b[0] << endl;
}

#13
万致远醉帥2020-03-30 15:56
回复 11楼 叶纤
是想试一下行不行
#14
叶纤2020-03-30 16:10
你看12楼的代码,榜样代码,就算你要复制粘贴我的,起码要写个头文件,array,还有系统要支持++17
#15
万致远醉帥2020-03-30 16:13
1