vc6.0出现内存错怎么回事啊?求解

friendking 发布于 2012/03/15 20:57
阅读 562
收藏 0
VC
编写了一段程序,可以运行,但是当输入数据的时候出现了

0x004026B8指令引用的0x00000000内存。该内存不能为written

新手不懂怎么回事儿,求解

程序如下:

#include <stdio.h>
#include <string.h>
const int RS=3;  
char name[RS][8];
int no[RS];
float degree[RS][40];//存储学生三门课成绩及总分

void input(){
printf("输入数据:");
for (int i=1;i<=RS;i++){
printf(" 第%d个学生\n",i);
printf(" 姓名:");
scanf("%s",name[i-1]);
printf(" 学号:");
scanf("%d",no[i-1]);
printf(" 英语成绩:");
scanf("%f",degree[i-1][0]);
printf("程序设计成绩:");
scanf("%f",degree[i-1][1]);
printf(" 数学成绩:");
scanf("%f",degree[i-1][2]);
degree[i-1][3]=degree[i-1][0]+degree[i-1][1]+degree[i-1][2];
}

}


void sum(){
float s1=0,s2=0,s3=0;
printf("统计各科总成绩\n");
for (int i=0;i<=RS;i++)
{
s1=s1+degree[i][0];
s2=s2+degree[i][1];
s3=s3+degree[i][2];
}
printf(" 英语总成绩:%g\n",s1);
printf("程序设计总成绩:%g\n",s2);
printf(" 数学总成绩:%g\n",s3);
}

void query(){
int sel,bh,i;
char xm[8];
printf("数据查询\n");
printf(" 1.姓名 2.学号 请选择:");
scanf("%d",sel);
switch(sel)
{
case 1:printf(" 输入姓名:");
scanf("%s",xm);
for (i=0;i<=RS;i++)
if (strcmp(xm,name[i])==0){
printf(" 姓名:%s\n",xm);
printf(" 学号:%d\n",no[i]);


printf(" 英语成绩:%g\n",degree[i][0]);
printf("程序设计成绩:%g\n",degree[i][1]);
printf(" 数学成绩:%g\n",degree[i][2]);
printf(" 总成绩:%g\n",degree[i][3]);
}
break;
}

}


void main()
{
input();
sum();
query();
}
加载中
0
six
six
for(i = 0; i <= RS; i++)
0
friendking
friendking

引用来自“six”的答案

for(i = 0; i <= RS; i++)
不是这个错误的啊,改了下,还是内存不能written,是不是硬件问题啊
0
0
friendking
friendking

引用来自“six”的答案

scanf
不懂啊,你能不能说的具体下啊
0
老汉-憨憨
老汉-憨憨

scanf("%s",name[i-1]);


改为  scanf("%s",&name[i-1]);

其余的类似

0
老汉-憨憨
老汉-憨憨
其调用格式为: scanf("<格式化字符串>",<地址表>);
0
friendking
friendking

引用来自“痞子汤”的答案

其调用格式为: scanf("<格式化字符串>",<地址表>);
谢谢了啊 ,是这里的错误,我是新手,以后会多多努力的
0
friendking
friendking

引用来自“six”的答案

scanf
谢谢了啊,问题已经解决了
返回顶部
顶部