赞
踩
题目描述
输入n个正整数,然后将它们输出。
注:
需要将所有元素存储在数组中,然后一次性输出
请对比数组定义在main函数中与定义在全局的执行结果有何不同
输入描述
第一行一个整数n,表示需要输入的正整数的个数;
第二行为用空格隔开的n
个正整数(每个正整数均不超过100)。
输出描述
输出一行,表示输入的 n个正整数。整数间用一个空格隔开,行末不允许有多余的空格。
样例1
输入
3
2 8 5
输出
2 8 5
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[1000000];
for(int i=0;i<n;i++)
cin>>a[i];
for(int j=0;j<n-1;j++)
cout<<a[j]<<" ";
cout<<a[n-1];
}

当我们试图在函数中开一个大数组时,很容易使程序报错退出,这是因为在函数(包括主函数)中定义变量时,变量会存放在“栈”区,栈区可以分配的内存较小,所以在开大数组的时候会因为申请不到内存而报错退出。
而如果我们把数组开在函数外面,那么将会存放在“堆”区,堆区可以分配的内存较大,适合开大数组。
#include <bits/stdc++.h>
using namespace std;
int a[1000000];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
for(int j=0;j<n-1;j++)
cout<<a[j]<<" ";
cout<<a[n-1];
}
正确

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。