想问一下在C++里面怎样输入一个数组

小马从不改名 2017-11-18 03:44:00
#include<iostream>
using namespace std;
int main(){
int i;
cout<<"please put number in it:";
int a[i] ;
for(i = 0; i < 10; i++)
{
cin>>a[ i ];
}
for(int n = 0; n < i; n++){
cout<<a[ n ];
}
return 0;
}

写了这么一段,目的是在键盘输入一串数字存入数组a里面,然后再输出数组a,但是程序运行的时候,只有输入,看不到输出,最后还会出现提示program received signal SIGSEGV,Segmentation fault 想知道这是怎么一回事,还有想要达到我这个目的的话正确的程序应该怎样写
p.s:刚刚开始接触C++,好多地方不懂,求教~
...全文
18072 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
药丸啊 2017-12-06
  • 打赏
  • 举报
回复
引用 9 楼 weixin_41098650 的回复:
[quote=引用 3 楼 qq_34927501 的回复:] [quote=引用 2 楼 cfjtaishan 的回复:]
#include<iostream>

using namespace std;

int main()
{
    int i;
    cout<<"please put number in it:";
    int a[10];    /* i是随机值*/
    for(i = 0; i < 10; i++)
    {
        cin>>a[i];
    }
    for(int n = 0; n < i; n++) {
        cout<<a[n];
    }
    return 0;
}
等你输够10个数就可以看到结果了。再试一下。 i是随机值,不能用于定义数组个数;
试试楼上的方法吧,这个正确的 你最重要的问题在于i没有赋值,当然后面也有错,[/quote] 谢谢谢谢,另外,如果要输入个数不定的元素要怎么办呢[/quote]

int n;
cin>>n;
int *a=new int[n];//a是数组名,n是元素个数
用的是动态数组的方法
Tony5t4rk 2017-12-05
  • 打赏
  • 举报
回复
引用 9 楼 weixin_41098650 的回复:
[quote=引用 3 楼 qq_34927501 的回复:] [quote=引用 2 楼 cfjtaishan 的回复:]
#include<iostream>

using namespace std;

int main()
{
    int i;
    cout<<"please put number in it:";
    int a[10];    /* i是随机值*/
    for(i = 0; i < 10; i++)
    {
        cin>>a[i];
    }
    for(int n = 0; n < i; n++) {
        cout<<a[n];
    }
    return 0;
}
等你输够10个数就可以看到结果了。再试一下。 i是随机值,不能用于定义数组个数;
试试楼上的方法吧,这个正确的 你最重要的问题在于i没有赋值,当然后面也有错,[/quote] 谢谢谢谢,另外,如果要输入个数不定的元素要怎么办呢[/quote] 用string吧
yx777777 2017-12-05
  • 打赏
  • 举报
回复
#include<iostream> using namespace std; int main() { int i; cout << "please put number in it:"; int a[10]; for (i = 0; i < 10; i++) { cin >> a[i]; } for (int n = 0; n < i; n++) { cout << a[n]<<" "; } return 0; }
yx777777 2017-12-05
  • 打赏
  • 举报
回复 1
第一个i是全局变量,for里面的i是局部变量,第二个for里面的i的值不对,输出不了
yx777777 2017-12-05
  • 打赏
  • 举报
回复
你确定你这个通过编译了
两水先木示 2017-12-05
  • 打赏
  • 举报
回复
我的天仔细看 i还没有赋值,数组没有固定长度不行的
两水先木示 2017-12-05
  • 打赏
  • 举报
回复
你第二个for的条件n<i 这个i是11,到最后会cout<<a[10]; a[10]数组越界 出现这个错误。。
  • 打赏
  • 举报
回复

#include<iostream>
 
int main()
{
    int i;
    std::cout<<"请输入一个值:"<<std::endl;;
    int number[1024];    /* i是随机值*/
    for(i = 0; i < 1024; i++)
    {
        std:;cin>>number[i];
    }
    for(int n = 0; n < i; n++) {
        std::cout<<number[n];
    }
    return 0;
}
小马从不改名 2017-12-02
  • 打赏
  • 举报
回复
引用 3 楼 qq_34927501 的回复:
[quote=引用 2 楼 cfjtaishan 的回复:]
#include<iostream>

using namespace std;

int main()
{
    int i;
    cout<<"please put number in it:";
    int a[10];    /* i是随机值*/
    for(i = 0; i < 10; i++)
    {
        cin>>a[i];
    }
    for(int n = 0; n < i; n++) {
        cout<<a[n];
    }
    return 0;
}
等你输够10个数就可以看到结果了。再试一下。 i是随机值,不能用于定义数组个数;
试试楼上的方法吧,这个正确的 你最重要的问题在于i没有赋值,当然后面也有错,[/quote] 谢谢谢谢,另外,如果要输入个数不定的元素要怎么办呢
yang_deyuan 2017-11-30
  • 打赏
  • 举报
回复
以上程序可以输入任意长数组。按“^z”键结束输入。比较灵活。
yang_deyuan 2017-11-30
  • 打赏
  • 举报
回复
用vector实现比较好。另外,输入前增加一些提示。示例如下:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int i=0,t;
    vector<int> sa;

    cout<<"Please input data, ^Z to end."<<endl;
    cout<<"A["<<i<<"]=";
    while(cin>>t) { //input
        sa.push_back(t);
        ++i;
        cout<<"A["<<i<<"]=";
    }

    cout<<"Now output the data you just input."<<endl;
    for (int j=0;j!=sa.size();++j){ //output
        cout<<"A["<<j<<"]="<<sa[j]<<endl;
    }

    return 0;
}
jena_wy 2017-11-29
  • 打赏
  • 举报
回复
数组要么是New或者malloc,或者数组是一个定长。
  • 打赏
  • 举报
回复
#include<iostream> using namespace std; int main(){ //int i;你这里没初值 不用这样定义全局变量 cout<<"please put number in it:"<<endl; int a[10] ;//这里要给a数组初始个数 for(int i = 0; i < 10; i++){ cin>>a[ i ]; } cout<<endl; for(int n = 0; n < 10; n++){//这样写的话不用放上一个for里面 cout<<a[ n ]<<" "; } return 0; }
Barcelooooooooona 2017-11-22
  • 打赏
  • 举报
回复
我记得直接用cin>>a就可以了
药丸啊 2017-11-18
  • 打赏
  • 举报
回复
引用 2 楼 cfjtaishan 的回复:
#include<iostream>

using namespace std;

int main()
{
    int i;
    cout<<"please put number in it:";
    int a[10];    /* i是随机值*/
    for(i = 0; i < 10; i++)
    {
        cin>>a[i];
    }
    for(int n = 0; n < i; n++) {
        cout<<a[n];
    }
    return 0;
}
等你输够10个数就可以看到结果了。再试一下。 i是随机值,不能用于定义数组个数;
试试楼上的方法吧,这个正确的 你最重要的问题在于i没有赋值,当然后面也有错,
自信男孩 2017-11-18
  • 打赏
  • 举报
回复
#include<iostream>

using namespace std;

int main()
{
    int i;
    cout<<"please put number in it:";
    int a[10];    /* i是随机值*/
    for(i = 0; i < 10; i++)
    {
        cin>>a[i];
    }
    for(int n = 0; n < i; n++) {
        cout<<a[n];
    }
    return 0;
}
等你输够10个数就可以看到结果了。再试一下。 i是随机值,不能用于定义数组个数;
大米粥哥哥 2017-11-18
  • 打赏
  • 举报
回复
你这个用字符串很好实现

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧