| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2770 人关注过本帖
标题:scanf("%f",&a[i][j])的问题!
只看楼主 加入收藏
polly28
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-6-7
收藏
 问题点数:0 回复次数:13 
scanf("%f",&a[i][j])的问题!

我在运行下面程序时发现问题:
#include "stdio.h"
main()
{
int i,j;
float a[4][4];
printf("input:");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
scanf("%f",&a[i][j]); 本人发现在此处运行时被终止!
printf("\n");
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
printf("%f",a[i][j]);
}
编译没问题,就是运行时不让输入浮点数,单步调试时发现程序在scanf("%f",&a[i][j])处终止.我把a[4][4]改成int型,就能运行!本人百思不得其解,请教哪位高手帮帮忙解决一下我的问题!万分感谢!!

搜索更多相关主题的帖子: scanf 
2006-06-07 20:17
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
楼主用的是TC?
如果是,加以下语句就可以了:
float a;float *p=&a;/*连接浮点库*/
这类论坛上的帖子有很多。

对不礼貌的女生收钱......
2006-06-07 20:22
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
这是TC的1个bug、1处暇疵,犹如太阳黑子美人痣。
除楼上说的方法外,还可在主函数末尾加这么1句:
_turboFloat();/*迫使Linker将浮点库链接进来*/

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-08 05:10
yiqing8854
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2006-6-4
收藏
得分:0 
又学习了!~!~

2006-06-08 10:28
zgwxwn
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-24
收藏
得分:0 
受益匪浅!!!!!!

coding & enjoying
2006-06-08 16:07
yiqing8854
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2006-6-4
收藏
得分:0 
能否把修改过的CODE贴出来,我的能编译过去,可是一运行就出错啊!~!
#include <stdio.h>
int main(void)
{
int i,j;
int a[4][4];
printf("input:");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
printf("\n");
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
printf("%d",a[i][j]);
return 0;
}

2006-06-09 08:56
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

/*楼上的程序没什么错啊*/
/*下面不过写得紧凑而已*/
#include <stdio.h>
int main(void)
{
int i,j,a[4][4];

printf("input:");
for(i=0;i<4;i++,printf("\n"))
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);//输入1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4

for(i=0;i<4;i++,printf("\n"))
for(j=0;j<4;j++)
printf("%d\t",a[i][j]);

return 0;
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-09 09:08
yiqing8854
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2006-6-4
收藏
得分:0 
可是一运行就出现一个WINDOWS对话框,大概意思好像是内存地址地问题,不懂啊,然后有三个按钮,一个忽略一个关闭一个好象是重试,
标题上是这么写的:16位 MS-DOS子系统
框里的内容是这样的:Turbo C++ IDE
NTVDM CPU遇到无效的指令
CS:8a25 IP:83b6 OP:ff fe 1f ff fe 选择"关闭"中指应用程序.
然后下面有两个按钮:
一个是关闭 一个是忽略

2006-06-09 09:25
yiqing8854
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2006-6-4
收藏
得分:0 
哦,错了,不是%d,我把代码给贴错了.
#include <stdio.h>
int main(void)
{
int i,j;
float a[4][4];
printf("input:");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
scanf("%f",a[i][j]);
printf("\n");
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
printf("%f",a[i][j]);
_turboFloat();
return 0;
}
用的是单精度,是不是如果在SCANF函数定义的是单精度在输入的时候也得输入类似小数的形式啊,例如1.0 2.0 3.0 4.0 50这样的方式啊!~!~

2006-06-09 09:29
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(yiqing8854)可是一运行就出现一个WINDOWS对话...
你把刚刚我贴的切割下来运行。
输入样式我也给了。
有问题再回帖。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-09 09:32
快速回复:scanf("%f",&a[i][j])的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025989 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved