大问题啊!!
c语言中,scanf语句里面什么时候要加&,什么时候不要加&?是不是前面要是定义是一个数组,里面就不要加&?#include<stdio.h>
#define STUDENTS 100
#define ITEMS 10
int inputs(int n,int k);
int show(int n,int k);
char name;//学生姓名;
char itemsname;//科目名称;
int score;
int main()
{
int n;//总人数;
int k;//科目总数;
printf("请输入班级总人数:");
scanf("%d",&n);
printf("请输入科目总数:");
scanf("%d",&k);
inputs(n,k);
show(n,k);
}
int inputs(int n,int k)
{
int i,j;
for(i=0;i<k;i++)
{
printf("请输入第 %d 科科目名称:",i+1);
scanf("%s",itemsname);
}
for(j=0;j<n;j++)
{
printf("请输入第 %d 个学生姓名:",j+1);
scanf("%s",name);
for(i=0;i<k;i++)
{
printf("请输入 %s 同学 %s 科目的成绩:",name,itemsname);
scanf("%d",&score);
}
}
}
学生成绩管理系统中,为什么最后一行scanf("%d",&score); 是这样?起初我是int score。。。。scanf(“%d",score);
然后运行出错了。为什么分数要这么定义? 数据类型不同楼主 score 是代表一个int 而score是代表整个数组
例如说a a 数据类型是 a a 他是数组类型
而a 代表的就是一个int 他两的数据类型不一样
这样说不知道会不会太笼统呢虽说地址是一样的但是C语言是 有数据类型的
scanf中&为取地址符,数组名可以表示数组的首地址,所以不需要再取地址。 & 变量 是取变量的地址 起初是int score; 是定义了一个数组, 你这scanf("%d",&score); & score是取score的地址. 那最后一行的scanf(“%d",score);是对二维数组赋值,你已经用了两个for 循环了而且用的是下标法赋值的. scanf(“%d",score);你这样我也不知道怎么解释了.scanf("%d",*(score + j)+ i);这样才是用地址的方法赋值 桃花飞舞 发表于 2016-4-21 09:54
& 变量 是取变量的地址 起初是int score; 是定义了一个数组, 你这scanf("%d",&sco ...
学了指针,大侠的最后一句看懂了。
页:
[1]