C++程序中输入无法执行,运行后直接不进行输入

#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,n;
cin>>n;
int cube[100][100][100][100]={0};
for(a=0;a<n;a++)
for(b=0;b<n;b++)
for(c=0;c<n;c++)
for(d=0;d<n;d++)
if((a+1)*(a+1)*(a+1)==(b+1)*(b+1)*(b+1)+(c+1)*(c+1)*(c+1)+(d+1)*(d+1)*(d+1))
cube[a][b][c][d]=1;
for(a=0;a<n;a++)
for(b=0;b<n;b++)
for(c=0;c<n;c++)
for(d=0;d<n;d++)
if(cube[a][b][c][d])
cout<<"Cube="<<a+1<<",Triple=("<<b+1<<","<<c+1<<","<<d+1<<")"<<endl;
return 0;
}

#include<iostream>

using namespace std;

int cube[100][100][100][100]={0};

int main()

{

int a,b,c,d,n;

cin>>n;

for(a=0;a<n;a++)

for(b=0;b<n;b++)

for(c=0;c<n;c++)

for(d=0;d<n;d++)

if((a+1)*(a+1)*(a+1)==(b+1)*(b+1)*(b+1)+(c+1)*(c+1)*(c+1)+(d+1)*(d+1)*(d+1))

cube[a][b][c][d]=1;

for(a=0;a<n;a++)

for(b=0;b<n;b++)

for(c=0;c<n;c++)

for(d=0;d<n;d++)

if(cube[a][b][c][d])

cout<<"Cube="<<a+1<<",Triple=("<<b+1<<","<<c+1<<","<<d+1<<")"<<endl;

return 0;

}

把cube数组定义为全局试一试,我怎么记得局部数组好像不能这么弄初值。

100*100*100*100*4/1024/1024=381 这个数组一共381个MB左右不是很大,还是能在普通电脑上定义出来的

试了一下,可以运行

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-29
我觉得你申请的内存太大了,100X100X100X100 太大了!追问

那应该怎么改?

追答

用不到那么大,为什么要写那么大?
数组申请的内存是连续的,一般系统找不到那么长一段连续的内存,所以会出错。
建议改小点 比如 cube[10][10][10][10]
你这个程序是做什么用的?

...c++上运行时,去掉了scanf后面的printf,运行时就没有输入输出,直接结 ...
有可能是因为输入缓冲区没有清空,所以没有让用户输入的动作。在scanf("%d",&a);之前做一次清空输入缓冲区的动作应该就会正常了,即调用一次 fflush(stdin);没有输出可能是因为没有遇到换行符,部分编译器是会这样的,要遇到换行才去输出,你可以在return 0;之前输出一次换行,应该就可以了,即调用一...

C++菜鸟程序运行直接结束,没有输入输出显示!提示已经结束工作!编写习惯...
第二步 你*pted = ted ; 这里面有两个错误 第一 ted 并没有初始化 它的值根本不知道是多少 第二 你就这个未知量赋给了 pted随意指向的内存单元 这块单元很可能是 只读的 或者 正在被其他程序使用 此时 程序就会崩溃 也就是说 你的程序到了这一步 就崩溃了 下面根本不会...

为什么C++程序设计能编译却不能运行,而且不能键盘输入
这个说明你的程序在逻辑上可能有问题了,因为编译和运行是两个过程,编译的条件是:语句正确就可以通过的,但是,你要运行,是需要将整个程序块链接起来的,不能运行,说明你的程序在链接后无法完成,你自习阅读下你的程序,看看哪里有逻辑上的错误,比如说死循环等等 ...

关于C++输入cin的问题,下面的程序,如果输入的不合法,那就将陷入死循环...
当你在控制台输完数据敲回车后,输入的数据以及回车换行符被同时送到输入缓冲区,例如你输入的数据为a,然后回车,此时输入缓冲区中就有两个字符,一个是‘a’,一个是回车换行符‘\/n’,接着程序读取,由于类型不匹配,读取失败,并没有读走输入缓冲区中的数据,也就是说,此时输入缓冲区中还是‘...

为什么C++程序运行 我一输入数字 直接就关闭了
楼上所说的错误,需要先改正,否则编译都不过。你一闪即逝的问题,只要在main()的return 0;之前加一句system("pause");【只在win32下生效】,这样执行完之后就会等待了,知道有键盘键被按下。

VC++6.0总是提示“无法执行程序”,该怎么办?
1、首先,在打开VC++6.0后,我们在创建新“文件”时,要注意,创建的不是“C\/C++Header File”,而是“C++ source File”。2、然后,对自己的文件添加“文件名”和存储文件的位置: 可以看到后辍是“.c或.cpp”,而不是“.txt\/.h”等文件 3、其次,自己输入正确的程序,不得有缺“;”或者...

dev c++ 编译的源程序无法执行,可以进入命令行界面,输入数据,回车后命 ...
你仔细检查你编写的程序!肯定是你的程序出问题了,比如:你在程序中动态分配了内存,使用完后未释放内存,或者在分配内存之前没有检查是否能够分配,就会将指针指向一个无效的区域。还有数组越界检查等!

我在运行c++程序的时候,为是么当在运行框中输入数据后,敲回车就直接关...
(1)按住CTRL+F5运行;(2)在程序结束的最后--大括号的前面,加上getchar();(3)在程序结束的最后--大括号的前面,加上system("pause"),这时要加上头文件#include<stdlib.h>,因为system函数是标准库文件中的。以上三种我都用过,希望能给你帮助。

我随手写的程序 请C++高手帮我看看为什么运行时不产生输出
程序没有错误,可能是你输入的方法有问题:在输入时,程序要求以空字符结束输入,所以,在最后一个字符串输入完成并回车后应该两次按下CTRL+Z输入两个空字符然后再按回车才能结束输入。

C++ 为什么运行后直接就结束了
本来就应该运行完结束。程序不会处理完结果之后就停下来等你看,除非是调试的时候。你想看的话,return前加一句 system("pause");如果提示没有这个函数 ,加一个 #include<cstdlib>

相似回答