社区
C语言
帖子详情
scanf一问!
cssin
2001-06-13 07:14:00
我在编程序时,想提示用户按行输入二维数组的各个元素!
用了一个嵌套循环:
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%f",&a[i][j]);
编译时通过,但是一执行就包非法操作,最后跟踪到了这里!
请问这是怎么回事??
有解决办法吗?
...全文
413
38
打赏
收藏
scanf一问!
我在编程序时,想提示用户按行输入二维数组的各个元素! 用了一个嵌套循环: for(i=0;i<=2;i++) for(j=0;j<=2;j++) scanf("%f",&a[i][j]); 编译时通过,但是一执行就包非法操作,最后跟踪到了这里! 请问这是怎么回事?? 有解决办法吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
38 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
joe_fox1025
2001-06-22
打赏
举报
回复
高手云集,懂了很多!
cssin
2001-06-21
打赏
举报
回复
多谢各位了!
给分了!
bluexiaoyi
2001-06-17
打赏
举报
回复
sscanf的功能是扫描一个串
格式是sscanf(line,format,&var1,&var2....)
fgets读取一行,放在line中,sscanf函数处理它。format和函数printf格式串相同。
starsoft007
2001-06-17
打赏
举报
回复
确实有这样的错误
我也没有搞懂
在for语句前加一个
scanf("%f",a[0][0]);
后就没问题了
cssin
2001-06-17
打赏
举报
回复
多谢各位的帮忙!
bluexiaoyi兄:能否帮我解释一下sscanf的作用和用法??
cdws222
2001-06-15
打赏
举报
回复
float a[2][2];错了你是用的for(i=0;i<=2;i++)
如果用for(i=0;i<2;i++),就没错,
解决方法:
1.将a[][]扩大,比如a[3][3];
2.将<=改为<
llhwan
2001-06-15
打赏
举报
回复
把程序贴出来看看,说不定是其它地方的错误
bluexiaoyi
2001-06-15
打赏
举报
回复
书名写错了
是《实用c语言》
bluexiaoyi
2001-06-15
打赏
举报
回复
下面是我从老外写的《使用c语言教程》上看到的:
函数scanf工作原理和printf类似,但scanf只读数字,不写数字。
它提供了一种简单容易的读取方式,但因为它对结束行处理的不好,对专业人士几乎没有用处!
那本书上的解决方法就是用fgets函数和sscanf函数合用,替代scanf函数,如我上面所写的。
我不知道能不能解决 cssin 的问题,只是拿出来共享一下,让大家知道!
qingsong99
2001-06-15
打赏
举报
回复
我也遇到这种情况,当你循环输入一个或多个字符类型时,将出现意想不到的结果,或是当你对循环输入一个整型变量和字符变量时也同样出现令你意想不到的结果。
bluexiaoyi
2001-06-15
打赏
举报
回复
char line[100];
for(i=0;i<=2;i++)
for(j=0;j<=2;j++){
fgets(line,sizeof(line),stdin);
sscanf(line,"%f",&a[i][j]);} //注意是 sscanf 不是scanf !
请你现在再试一下!!!好吗?
cssin
2001-06-15
打赏
举报
回复
难道真的是程序其他地方有问题?
不可能啊!
、偶在提示用户输入后用了下面的代码:
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
printf("%d ",a[i][j]);
exit()
结果没有打印输组就非法了!
说明只可能是上面的程序出了问题!
各位认为呢?
soon
2001-06-15
打赏
举报
回复
tc3.0 编译运行也没问题。
#include <stdio.h>
main()
{
float a[2][2];
int i,j;
/*scanf("%f",&a[0][0]);*/
for(i=0;i<2;i++)
for(j=0;j<2;j++)
scanf("%f",&a[i][j]);
printf("\n");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%f\n",a[i][j]);
}
cssin
2001-06-15
打赏
举报
回复
难道就此认为是TC的问题??
soon
2001-06-15
打赏
举报
回复
vc编译运行没问题。
#include <stdio.h>
main()
{
float a[2][2];
int i,j;
scanf("%f",&a[0][0]);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
scanf("%f",&a[i][j]);
printf("\n");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%f\n",a[i][j]);
}
cssin
2001-06-15
打赏
举报
回复
哪位大哥来回答一下吧!
cssin
2001-06-15
打赏
举报
回复
joe_fox1025:
按照ahphone所说,似乎可以!
或许这是TC本身的毛病!
sqsw
2001-06-15
打赏
举报
回复
恩
joe_fox1025
2001-06-15
打赏
举报
回复
看来这种错误经常出现,我的一个程序也是这样的错误,也不知道为什么,你能把你的程序贴出来吗?我比较一下,也许能发现错误!
cssin
2001-06-15
打赏
举报
回复
多谢各位回答小弟的问题!
原题是要求一个3*3矩阵的对角线之和!
在开始提示用户按行输入矩阵的各元素:
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%f",&a[i][j]);
运行时报错:floating point not link
abnormal terminate!
PS:因为我是在网吧上的网,所以记不住原码~
加载更多回复(18)
【C语言】
scanf
多组输入的三种方法!
scanf
函数你还只会输入嘛?这篇文章带你认识不一样的
scanf
( ),彻底了解
scanf
函数的两种输入方法,以及返回值的应用。并且本博主还附上了练习题边学边练才有真收获。带你看不一样的博客!
scanf
中的一些格式问题(一)——
scanf
内含空格
scanf
函数中空格的分析理解(一)
scanf
详解 - 你所不知道的
scanf
用法
细致到超乎你想象的
scanf
详解
c语言
scanf
用法
C语言中
scanf
的用法和注意事项 内容参考:https://blog.csdn.net/hk_kang/article/details/78747726
scanf
概念
scanf
是格式输入函数,功能是在屏幕上输入指定的信息。简单的来说和printf相似却不相同。
scanf
调用格式:
scanf
("<格式化字符串>",<地址表>); 如: #include <s...
解决
scanf
_s函数报错:没有为格式字符串传递足够的参数
本文分析了Visual Studio中使用
scanf
_s函数时常见的参数不足错误(error C4473)。关键点在于
scanf
_s作为安全版本函数,在读取字符串(%s)或字符(%c)时必须额外提供缓冲区大小参数(如
scanf
_s("%s",str,sizeof(str)))。文章对比了
scanf
与
scanf
_s的区别,给出了正确用法示例,并强调该函数是MSVC特有扩展,建议跨平台时考虑使用fgets替代。核心记忆点:使用
scanf
_s处理字符串/字符输入时,必须添加缓冲区边界参数。
C语言
70,039
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章