看看我的问题,弱的。。。

qgqch2008 2010-06-23 09:58:38
#include<stdio.h>
void main()
{
int a[3][3],i,j,p;
p=1;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
scanf("%d",a[i][j]);}
for(i=0;i<3;i++)p=p*a[i][i];
printf("结果为:%d\n",p);
}
我用vc6写这么个小代码,编译后,我输入完9个数字按回车,就弹出来发送报告,出不来计算结果。。。我再点不发送,然后又显示按任意键继续,怎么回事啊?
...全文
137 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianglutian 2010-06-24
  • 打赏
  • 举报
回复

#include<stdio.h>
int main()
{
int a[3][3],i,j,p;
p=1;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);//就是这里忘记加取地址符了
}
for(i=0;i<3;i++)
p=p*a[i][i];
printf("结果为:%d\n",p);
return 0;
}


改一下格式,看着原来的不太舒服
qgqch2008 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 huanmie_09 的回复:]

引用 11 楼 qgqch2008 的回复:

引用 10 楼 huanmie_09 的回复:

scanf("%d", 0x1);
楼主试试,这样编译也是不会报错的.但运行时会报错

恩,我试了一下,是的那么个情况。。。
0x1,这个是什么意思?

scanf("%d", 0x1);
这个表示在0x1的内存地址上写入内容,而这个地址是受系统保护的,不能写,编译时语法正确,……
[/Quote]
哟西!学习了,谢谢
huanmie_09 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 qgqch2008 的回复:]

引用 10 楼 huanmie_09 的回复:

scanf("%d", 0x1);
楼主试试,这样编译也是不会报错的.但运行时会报错

恩,我试了一下,是的那么个情况。。。
0x1,这个是什么意思?
[/Quote]
scanf("%d", 0x1);
这个表示在0x1的内存地址上写入内容,而这个地址是受系统保护的,不能写,编译时语法正确,但运行时执行到这里的时候就会报内存不能写的错误.
这样就不难理解:
scanf("%d",a[i][j]);
为什么编译时不报错,而运行时报错了吧.
qgqch2008 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 huanmie_09 的回复:]

scanf("%d", 0x1);
楼主试试,这样编译也是不会报错的.但运行时会报错
[/Quote]
恩,我试了一下,是的那么个情况。。。
0x1,这个是什么意思?
huanmie_09 2010-06-23
  • 打赏
  • 举报
回复
scanf("%d", 0x1);
楼主试试,这样编译也是不会报错的.但运行时会报错
qgqch2008 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 huanmie_09 的回复:]

引用 4 楼 qgqch2008 的回复:

引用 1 楼 qgqch2008 的回复:

怎么还没有回答呢。。。
那为什么vc里面不报错呢??

数组a各元素值没有初始化,也就是说a[i][j]是不确定的值,
scanf("%d",a[i][j]);
表示在a[i][j]的地址上写入内容,如果该地址受系统保护,则运行时将会报该地址不能写的运行时错误.
[/Quote]哦~费解。。
LX220111 2010-06-23
  • 打赏
  • 举报
回复
语法没错,编译不报警的,但是逻辑有问题的话一样运行不了~
huanmie_09 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qgqch2008 的回复:]

引用 1 楼 qgqch2008 的回复:

怎么还没有回答呢。。。
那为什么vc里面不报错呢??
[/Quote]
数组a各元素值没有初始化,也就是说a[i][j]是不确定的值,
scanf("%d",a[i][j]);
表示在a[i][j]的地址上写入内容,如果该地址受系统保护,则运行时将会报该地址不能写的运行时错误.
qgqch2008 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cblcz 的回复:]

引用 4 楼 qgqch2008 的回复:
引用 1 楼 qgqch2008 的回复:

怎么还没有回答呢。。。
那为什么vc里面不报错呢??


从语法上来说,没错...
[/Quote]那是什么情况?
cblcz 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qgqch2008 的回复:]
引用 1 楼 qgqch2008 的回复:

怎么还没有回答呢。。。
那为什么vc里面不报错呢??
[/Quote]

从语法上来说,没错...
qgqch2008 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qgqch2008 的回复:]

怎么还没有回答呢。。。
[/Quote]那为什么vc里面不报错呢??
qgqch2008 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 npuhuxl 的回复:]

scanf("%d",&a[i][j])
[/Quote]解决,谢谢!
npuhuxl 2010-06-23
  • 打赏
  • 举报
回复
scanf("%d",&a[i][j])
qgqch2008 2010-06-23
  • 打赏
  • 举报
回复
怎么还没有回答呢。。。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧