求助,编译通过运行出现应用程序错误,该内存不能为written

曹宇 2011-11-17 10:32:33
我明明定义的是int 可是输入数字就出错,输入字母却好好的,为啥?
一个输出最高分学生学号和总分的程序!
代码如下。。
#include <stdio.h>
#include <stdlib.h>
void main ()
{
int a[10][5],max=-1,max_i,i,j;
for (i=0;i<10;i++)
{
printf("请输入学生学号\n"); //a[i][0]为学号输入
scanf("%d",a[i][0]);
fflush(stdin);
printf("请输入本学生的成绩一");
scanf("%d",a[i][1]);
fflush(stdin);
printf("请输入本学生的成绩二");
scanf("%d",a[i][2]);
fflush(stdin);
printf("请输入本学生的成绩三");
scanf("%d",a[i][3]);
fflush(stdin);
a[i][4]=a[i][1]+a[i][2]+a[i][3]; //a[i][4]为此学生的总分
if(a[i][4]>max)
{
max=a[i][4]; //不要想着当第二次循环的时候a[i][4]中的i就变成循环第二次的i=2了。a[i][4]是一个
max_i=i; //具体的数值了。。。。如a[i][4]是4,是5是100等等。。所以max是一个具体的数值只不过
//代码中是a[i][4]显示出来。。。。
}

}
printf("最高分的学生的学号是%d\n此学生的最高分是%d",a[max_i],max);
}


求助,为啥我不能输入数字啊??

输入字母却好好的,没错误!
谢谢!
...全文
124 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
橡皮擦 2011-11-18
  • 打赏
  • 举报
回复
scanf语句中缺少&
赵4老师 2011-11-18
  • 打赏
  • 举报
回复
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
曹宇 2011-11-18
  • 打赏
  • 举报
回复
哦,我的天那,太粗心了!
呵呵,谢谢你们啊!哎,还是太粗心!
谢啦!
zoopang 2011-11-18
  • 打赏
  • 举报
回复
楼主太粗心了…………
0xAC 2011-11-18
  • 打赏
  • 举报
回复
取址符“&”不见了!scanf是根据提供的地址来赋值的
曹宇 2011-11-18
  • 打赏
  • 举报
回复
恩,谢谢你们了,我太粗心了!哎。。!呵呵!
曹宇 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 a971124568 的回复:]

int 表示的数是有范围的,你的学号输进程序之后,程序会按数字处理,int表示数的范围由你的电脑决定,你看看是不是你输入的学号太大了;字符在电脑中实际上是通过数字表示的,也可以说字符在电脑中就是整数,而字符的表示范围是很小的,一般是-128~~127所以会出现你说的结果
[/Quote]
我输入的就输入的1没有超出范围,就是不知道这到底怎么回事!郁闷!
橡皮擦 2011-11-17
  • 打赏
  • 举报
回复
int 表示的数是有范围的,你的学号输进程序之后,程序会按数字处理,int表示数的范围由你的电脑决定,你看看是不是你输入的学号太大了;字符在电脑中实际上是通过数字表示的,也可以说字符在电脑中就是整数,而字符的表示范围是很小的,一般是-128~~127所以会出现你说的结果
yulinlang 2011-11-17
  • 打赏
  • 举报
回复
scanf("%d",&a[i][0]);
下同
汪达人 2011-11-17
  • 打赏
  • 举报
回复
其他的我没细看,我只是奇怪c++代码为什么用printf来输出?直接用cin和cout不是方便么?

69,379

社区成员

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

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