所在位置:主页 > 程序语言 > 关于c语言中 if else的问题,看下我的程序哪里出错了,急啊 怎么老说else不对啊,怎么改?

关于c语言中 if else的问题,看下我的程序哪里出错了,急啊 怎么老说else不对啊,怎么改?

发布时间:2023-10-27 07:41来源:www.sf1369.com作者:宇宇

关于c语言中 if else的问题,看下我的程序哪里出错了,急啊 怎么老说else不对啊,怎么改?

#includestdio.h

#includemath.h

int main()

{double a[5][5]={

{28,-3,0,0,0},

{-3,38,-10,0,-5},

{0,0,-15,0,45},

{0,-10,25,-15,0},

{0,-5,0,0,30}};

double b[5]={10,0,0,0,0};

double x0[5]={1,1,1,1,1},x[5],e=0.001,s=0,c;

int Nmax,k,i,j,m=0,WAY;

printf(输入迭代次数N=);

scanf(%d,&Nmax);

printf(选择迭代方法: 1 是Jacobi迭代;2是Gauss-Seidel迭代。输入1或2 );

scanf(%d,&WAY);

if (WAY==1)

{

for(k=1;k<=Nmax;k++)

{

for(i=1;i<=5;i++)

{

for(j=1;j<=5;j++)

{

if(i!=j)

s=s+a[i][j]*x0[j];

}

x[i]=(b[i]-s)/a[i][i];

s=0;

}

c=fabs(x[0]-x0[0]);

for(i=1;i<5;i++)

{

if(c<fabs(x[i]-x0[i]))

c=fabs(x[i]-x0[i]);

}

if(c<搭戚e)

break;

for(i=0;i<5;i++)

x0[i]=x[i];

}

}

printf(经Jacobi法迭代后解向量为:\n);

for(i=1;i<=5;i++)

{x0[i]=x[i];

printf(x[%d]=%f\n,i,x0[i]);

}

if(k>Nmax){ printf(JACOBI迭代不收敛!);

printf(迭代次数k=%d,k);}

else if(WAY==1)

{

for(i=1;i<=5;i++)

x0[i]=x0[i];

for(k=1;k<=Nmax;k++)

{for(i=1;i<=5;i++)

{for(j=1;j<=5;j++)

{if(i!=j)

s=s+a[i][j]*x[j];

}

x[i]=(b[i]-s)/a[i][i];

s=0;}

c=fabs(x[0]-x0[0]);

for(i=1;i<=5;i++)

{ if(c<fabs(x[i]-x0[i]))

c=fabs(x[i]-x0[i]);

}

if(c<e) break;

for(i=1;i<=5;i++)

{ x0[i]=x[i];

}

}

printf(经核袜Gauss-Seidel法迭代后解改枝激向量为:\n);

for(i=1;i<=5;i++)

{x0[i]=x[i];

printf(x[d%]=%f\n,i,x0[i]);

}

if(k>Nmax) printf(Gauss-Seidel不收敛!);

printf(迭代次数k=%d,k);

}

}

{} 混乱else 前边} 已经和main下边的{ 对应哗贺者了,造成整个程序已经乱薯结束。你最好在编译器里。再细心整理拍闷一下{}。

if (WAY==1)和下面液察

else

if(WAY==1)

都是从悉埋贺你程序上粘下来的,肯定不对啊,if和睁派else是分支,条件不能相同

这么长?不看

c语言中if语句中的else后面的语句要不要加花括号{ } ?

不加。

如果if后面有多个语句,则是需要的;如果只有一个的话,可写可不写!例如:if(a>b) print(a); if(a>b&&b>c) {print(b);print(c);}

这种循环判断语句的时候,不加花括号就是代表只有一句有效语句,悉丛如果不加代表的就是它下面只接受第一句话,后面的语句,自动归类为非此判断的在else结束后运行。

扩罩亮展资料:

if语句的语法如下所示(if和else是C#的关键字):

if(booleanExpression)

statement-1;

else

statement-2;  

如果booleanExpression(布尔表达式)求值为true,就运行statement-1;否则运行statement-2。else关键字和后续的statement-2是可选的。如果没有else子句,而且booleanExpression求值为false,那么什么也不会发生,程序继续执行if语句之后的代码。注意,布尔表睁闷樱达式必须放在圆括号中,否则无法编译。

参考资料来源:百度百科-if语句

如果else后面还是if......else....判断可以不加;岩派else后面如果只有一条语句扮郑也可不加。但为了清晰起见,最好加上,这样更明白些,省的厅枣颂出错。

是这春陵样的,如果if后面有多个语句,历森孙则是需要的;肢链如果只有一个的话,可写可不写!例如:if(a>b) print(a); if(a>b&&b>c) {print(b);print(c);}

Java 中要加。