兴城市公安局官网:c语言问题!

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 03:14:23
#include "stdio.h"
void main()
{ float a[3][4],max;
int i,j,x,y;
printf("Input 12 numbers:\n");
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
}
max=a[0][0];x=0;y=0;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
if(max<a[i][j])
{max=a[i][j];
x=i;y=j;
}
}
printf("The max is a[%d][%d]=%f\n",x,y,max);
getch();
}

为什么这个程序用WINTC编译后屏幕会一闪而过?而把float改成int,以及把相应的%f改成%d后就正常了,会不会是编译器的问题??

可能浮点数浮点的原因造成的吧。
你可以试一下,多定一个float型的普通变量。
float temp;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{scanf("%f",&temp; a[i][j]=temp;}
以前我用结构体的时候出现过类似的问题。

有可能是编译器事,你可以在程序结束的时候做一个等待,等输入一个数后再退出就好了。
#include "stdio.h"
void main()
{ float a[3][4],max;
int i,j,x,y;
int wait;
printf("Input 12 numbers:\n");
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
}
max=a[0][0];x=0;y=0;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
if(max<a[i][j])
{max=a[i][j];
x=i;y=j;
}
}
printf("The max is a[%d][%d]=%f\n",x,y,max);
scanf("%d",&wait);

}