VC++6.0程序有写捕获异常语句,但运行栈满(栈长为10)时却没输出上溢的异常信息,哪里出问题了?
各位大大,为什么用VC6.0运行这程序无错误,可是运行时却不行,而且输出不能实现正确的行列输出呀!!
已改,看注释
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
int i,j,m,n;
int srand(int(time));
cin>>m;
cin>>n;
int **p = new int*[m];//m行n列型
for(i=0;i<m;i++)
{
p[i] = new int[n];
for(j=0;j<n;j++)
p[i][j]=rand()%90+10;
}
for(i=0;i<m;i++)
{ // 加括号
for(j=0;j<n;j++)
cout<<p[i][j]<<" ";
cout << endl;
delete[] p[i];
}
delete[] p;
return 0;
}
c语言捕获异常问题
c语言是可以模拟c++异常机制的。
内容很多,可以自己去看看
cpp-circle.group.javaeye/group/blog/94540
blog.csdn/maozefa/archive/2007/12/25/1965755.aspx
等等。
或者直接google去“c语言 异常”。结果很多!
C语言问题,这个程序为什么能运行,但是无法输出
因为你的程序算法时间复杂度太高,达到了O(n^2)。而n又太大,达到50万,n的平方达到2500亿。
程序一直在运行,循环还没结束,所以没有输出。耐心等1个小时,或者10个小时,或许就有了。
建议:for(j=1; j < t; j++)这一行改成
for(j = 1; j*j <= t; j++)
而a[t]=a[t]+j
改成
if (j*j = t)
a[t] = a[t] + j;
else
a[t] = a[t] + j + t/j;
这样复杂度就是3500万,1秒左右就出答案。
C语言程序无输出结果
#include<stdio.h>
double f(int n)
{
int i;
double s;
s=1.0;
for (i=1;i<=n;i++)
s+=1.0/i;
return s;
}
void main()
{
int i,m=3;
double a=0.0;
for(i=0; i<m; i++)
a+=f(i);
printf("%f\n",a);
}
运行结果: