c语言中二维数组的赋值问题,很奇怪

main()
{
int i=3;
float a[2][2];
for(i=0;i<2;i++)
scanf("%f,%f",&a[i][0],&a[i][1]);
printf("%f",a[1][1]);
}
就这么一个小程序,运行结果是黑色的屏幕一闪而过,什么也看不到,也没有在scanf函数暂停就直接退出了,但只要把数组定义成整型的,scanf和printf函数的格式说明符改为%d就可以运行,不明白为什么

第1个回答  2011-12-21
改成这样就能运行但是 ,你这小程序有点问题。自己改下吧,输出结果一定不对
#include<stdio.h>
int main()
{
int i=3;
float a[2][2];
for(i=0;i<2;i++)
scanf("%f,%f",&a[i][0],&a[i][1]);
printf("%f",a[1][1]);
return 0;
}
第2个回答  2011-12-21
/*
* =====================================================================================
*
* Filename: test.c
*
* Description:
*
* Version: 1.0
* Created: 12/21/2011 09:25:37 PM
* Revision: none
* Compiler: gcc
*
* Author: zjhxmjl,zjhxmjl@gmail.com
* Company:
*
* =====================================================================================
*/

#include <stdio.h>
int main()
{
int i = 3;
float a[2][2];

for ( i = 0;i < 2 ;i++ ) {
/* for循环进行两次,first,i=0,scanf函数输入a[0][0],a[0][1];second,i=1,scanf函数输入a[1][0],a[1][1] */
scanf ( "%f,%f", &a[i][0], &a[i][1] );
/* printf函数每次都打印a[1][1],因第一次a[1][1]未被赋值则默认为0,则printf输出0.000000,第二次a[1][1]为scanf函数输入数据*/
printf ( "%f", a[1][1] );
}
return 0;
}本回答被提问者和网友采纳
第3个回答  2011-12-21
浮点型变量要赋初始值 a[2][2]={0};
第4个回答  2011-12-22
同学习。。。。。。。。。。
相似回答
大家正在搜