二维数组中的运算
代码如下:运行超时,可以麻烦找找问题嘛……qwq
#include<stdio.h>
#include<math.h>
int main()
{
float a={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
float x;
int i,j;
x=fabs(a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(fabs(a)<x);
x=a;
}
for(j=0;i<3;j++)
a=a/x;
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%7.3f",a);
}
return 0;
} 代码的意思是 将数组a的每一行均除以该行上绝对值最大的元素,然后将a数组输出 第13-14行,16-17行,21-22行,应该给if 或者是 for 后面的语句加大括号吧 THU_LSM 发表于 2020-5-4 23:31
第13-14行,16-17行,21-22行,应该给if 或者是 for 后面的语句加大括号吧
应该都可叭,我记得如果不加的话 默认是接下来的一行 运行超时的问题找着了,第16行那里,我把"j"打成了"i"...
但是运行结果有出入……到底是为啥呢……{:10_262:}
Expected | Yours
0.3610.7501.000 0.3610.7501.000
0.4260.6381.000 0.4260.6381.000
0.7501.0000.317 | 2.3623.1501.000
if(fabs(a)<x);===》这里应该是大于x吧,比x大的才赋值给x。你这样运算,x是最小值了
x=a; chxchxkkk 发表于 2020-5-5 09:38
if(fabs(a)
啊啊是的!!但是改完运行了一下,和答案还是有出入……{:10_262:} 本帖最后由 Cool_Breeze 于 2020-5-5 13:43 编辑
#include<stdio.h>
#include<math.h>
int main()
{
float a={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
float x;
int i,j;
for(i=0;i<3;i++)
{
x=fabs(a);
for(j=0;j<3;j++)
{
if(fabs(a)>x)
x=a;
}
for(j=0;j<3;j++)
a=a/x;
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%7.3f",a);
}
return 0;
}
0.3610.7501.0000.4260.6381.0000.7501.0000.317
--------------------------------
Process exited after 0.01162 seconds with return value 0
请按任意键继续. . .
for(j=0;j<3;j++)
{
if(fabs(a)<x);
x=a;
}中 if(fabs(a)<x);这一句多加了个分号,然后这样就表示判断了if这个条件,什么操作都没有,直接下一步了
Marcccccy 发表于 2020-5-4 23:55
应该都可叭,我记得如果不加的话 默认是接下来的一行
我的编译器如果像你这样不加括号写的话都不通过编译诶。。。{:5_94:}
Apple LLVM version 10.0.0 (clang-1000.10.44.4) THU_LSM 发表于 2020-5-5 15:03
我的编译器如果像你这样不加括号写的话都不通过编译诶。。。
Apple LLVM version 10.0.0 (clang ...
欸,我用的是VC++,可能是编译器不一样叭哈哈哈哈哈哈,那还是加上好了嘿嘿 小猪鼠 发表于 2020-5-5 13:29
for(j=0;j
啊啊手抖多按了个分号上去【捂脸】,谢谢您啦! Cool_Breeze 发表于 2020-5-5 12:59
明白自己德问题辽,蟹蟹您!!{:10_287:} chxchxkkk 发表于 2020-5-5 09:38
if(fabs(a)
啊啊是的呢,谢谢您!!
页:
[1]