#include <stdio.h>
void main()
{
char name;
int student_number;
float English,Math,Computer,average;
printf("Put in your name:");
scanf("%s",&name);
printf("Put in your student_number:");
scanf("%d",&student_number);
printf("Put in your English, Math and Computer marks:");
scanf("%f%f%f",&English,&Math,&Computer);
average = (English + Math + Computer)/3;
printf("%s %d %f",name,student_number,average);
}
在你的这个程序里面的问题是你把字符变量当做了字符串变量来处理,导致了错误,
char name;
scanf("%s",&name);
这句话是不对的!
这句话可以这样去修改:一种是把name改成一个字符数组,name[10];
另一种该法是将name改成一个字符指针来处理,
char *name;但是这样改的话需要我们用动态
为name分配内存空间,name=(char *)maloc(10);
这样就可以了!
这是我修改之后的程序:
#include <stdio.h>
#include<stdlib.h> //头文件//
void main()
{
char *name; //我们定义的字符指针//
name=(char*)malloc(10); //为我们定义的字符指针分配空间,
malloc()函数包含在头文件#include<stdlib.h>//
int student_number;
float English,Math,Computer,average;
printf("Put in your name:");
scanf("%s",name); //输入一个字符串,注意不用“&”符号,因为name就是一个地址变量//
printf("Put in your student_number:");
scanf("%d",&student_number);
printf("Put in your English, Math and Computer marks:");
scanf("%f%f%f",&English,&Math,&Computer);
average = (English + Math + Computer)/3;
printf("%s %d %f",name,student_number,average);
}