C 构建错误导致代码块退出
我正在写一个C代码来解决一个数值问题,我定义了一个100x100的矩阵并用值填充它,a是矩阵,b是解决方案: A[i][j]=1/(i+j+1),b[i]=第i行中所有值的总和 以下是我的代码:C 构建错误导致代码块退出,c,codeblocks,numerical,build-error,C,Codeblocks,Numerical,Build Error,我正在写一个C代码来解决一个数值问题,我定义了一个100x100的矩阵并用值填充它,a是矩阵,b是解决方案: A[i][j]=1/(i+j+1),b[i]=第i行中所有值的总和 以下是我的代码: #include <stdio.h> #include <stdlib.h> #define n 100 int main() { double A[n][n]; double b[n]; int i,j; for (i=0;i<n;i++)
#include <stdio.h>
#include <stdlib.h>
#define n 100
int main()
{
double A[n][n];
double b[n];
int i,j;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
{
b[i]=0;
A[i][j]=0;
}
for (i=0;i<n;i++)
for (j=0;j<n;j++)
{
A[i][j]=1/(i+j+1);
b[i]+=A[i][j];
}
int c=10;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
{
printf("%lf\t",A[i][j]);
if (c==j) printf("\n");
c=c*10;
}
return 0;
}
#包括
#包括
#定义n 100
int main()
{
双A[n][n];
双b[n];
int i,j;
对于(i=0;i您有问题,所有a
将设置为0,只需使用1。
请使用double而不是int
#include <stdio.h>
#include <stdlib.h>
#define n 100
int main()
{
double A[n][n];
double b[n];
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
b[i] = 0;
A[i][j] = 0;
}
for (i = 0 ; i < n; i++)
for (j = 0; j < n; j++)
{
A[i][j] = 1. / (i + j + 1);
b[i] += A[i][j];
}
int c = 10;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
printf("%lf\t", A[i][j]);
if (c == j) printf("\n");
c *= 10;
}
return 0;
}
#包括
#包括
#定义n 100
int main()
{
双A[n][n];
双b[n];
int i,j;
对于(i=0;i
我已经构建并运行了您的代码,与我的日常环境(LabWindows/CVI-ANSI C编译器)和默认代码::块、控制台项目中的调试模式完全相同。在这两种环境中,除了可能产生意外的结果外,它都工作得很好。(一旦构建完成,您可能需要进行一些调试)
建议查看一下您的Code::Block安装/环境。我以前必须重新安装才能使其正常工作,尽管那是很久以前的事了,我记不起具体细节了
现在,请看:
1)全局编译器设置-工具链可执行文件
我的是这样的:
2)全局编译器设置-编译器设置
我的全部默认为未选中
3)全局编译器设置-生成选项
我的是这样的:
跑步过程如下所示:
我在我的(非代码块)环境中构建了它(并运行了它)。它构建/运行得很好。有些可能包括内存限制(不太可能),编译器切换/构建设置,代码块环境的配置不好。你能显示你的构建设置吗?@Ryker你能告诉我你使用的环境是什么吗?我使用的是LabWindows/CVI。这是国家仪器公司的商业产品。但我随后在Code::Blocks中运行了它,它构建/运行得很好。嗯,这是s语句不是问题,我尝试在没有它的情况下构建程序,但是@Ôrel也不起作用-虽然将int值赋给双变量是草率的,但这不是问题所在。事实上,代码确实没有问题。我像在code::Block环境中一样运行它,它构建并运行得很好。