1. 首页 > 科技

VC++6.0程序有写捕获异常语句,但运行栈满(栈长为10)时却没输出上溢的异常信息,哪里出问题了?

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);

}

运行结果: