#include<stdio.h>
#define PR printf
struct student
{
char name[20];
char sex;
int age;
float score;
}stu;
#include<string.h>
int main()
{
PR("name?");scanf("%s",&stu.name);
PR("sex?");scanf("%c",stu.sex);
PR("age?");scanf("%d",stu.age);
PR("score?");scanf("%f",stu.score);
PR("name:%s\n",stu.name);
PR("sex:%c\n",stu.sex);
PR("age:%d\n",stu.age);
PR("score:%f\n",stu.score);
return 0;
}
谢谢我改过来了,但是我刚刚输入name就弹出了sex?age?
追答由于系统输入缓冲区的问题,你在scanf ("%c", &stu.sex);这句之前或者scanf ("%s", stu.name);这句之后加一个getchar();获得一个回车符,或者fflush(stdin);清空缓冲区就可以了。
C语言为结构体中成员赋值出错是怎么回事
printf("%ld\\n%s\\n%f\\n%f\\n%f\\n",p->num,p->name,p->score[0],p->score[1],p->score[2]);printf("\\n");}
c语言 结构体(struct)数据录入为什么失败
因为scanf("%d %d %d",&stu_first.birthday.year,&stu_first.birthday.month,&stu_first.birthday.day);当用户输入数据再输入了回车既是输入了\\n,所以当运行到while((*ptr++=getchar())!='\\n');就相当输入了空字符 你可以在scanf函数后再加个getchar();就能正确的跑了。
c语言结构体赋值错误,求改正,错误如下图,两次赋值其中一次为空值,没...
p指针在循环输入的时候没有跳转地址,所以两次赋值都是针对的stu[0]p++;\/\/放到循环里面
c语言,给结构体变量赋值的时候出现的问题。运行此程序之后会“停止工...
stu0[5].stu.name,&stu0[5].stu.num,&stu0[5].stu.shengri.year,&stu0[5].stu.shengri.month,&stu0[5].stu.shengri.day, \/\/***\/\/ &stu0[5].stu.high,&stu0[5].stu.weight);
C语言结构体成员指针初始化问题
问题:(一)中的student.name并未初始化,为什么能赋值成功?stu.name = "jim"; "jim"; 是字符串常量,系统自动为他分配了内存并保存这些字符,执行赋值操作是,将这个字符串的首地址复制给 stu.name。(二)偶用strcpy_s函数时有疑问,strcpty(str1,int,str2)中 sizeof(str1)>int&&in...
关于C语言结构体的问题。为什么返回一直错误?代码如下。
函数范围一个结构体对象Load;但是你的返回的load的类型是Load load[];是一个数组,或者说是一个指针。可以把函数返回改成: Load* Input(Load load[], int n);
c语言 结构体问题,第一个printf执行之后就程序崩溃了,把错误指出并改正...
include<stdio.h>#include<string.h>struct Student{intStudent_ID;char name[12];int score;};int main(void){int i,j;struct Student s[10];void sort(struct Student *p);for(i=0;i<10;i++){printf("请输入第%d位学生的学号:\\n",i+1);scanf("%d",&s[i].Student_ID);\/\/这里...
求助一个C语言结构体数组赋初值的问题
price; int d;} Test;对结构体赋值,一般是顺序赋值,或者指定赋值 比如 Test test[] = { {1, "abc", 1, 2, 1.2, 3},\/\/对应id, name, level, stock, price, d {.id = 2, .level=3, price=4.2, .stock=2},\/\/这个就是指定赋值,点后面接的是结构体成员名};
关于c语言结构体变量成员引用的问题
p是struct student*类型,stu是stu[3]这个数组的第一个元素的地址,p指向第一个元素,因此ABC都是对的,D错在把(int*)变量值赋值给(struct student*)变量,有个强制转换则不会错,因为age是结构体第一个变量,其地址就是结构体变量的地址。是指针间的赋值,必须保证左右操作数的指针类型是一致的。
C语言结构体一个问题?
将C代码在VC++中编译,经常会出现error C2275错误,结果是变量的定义位置不对,应该在函数块的最前面。这是一个编程习惯的问题。在移植c++代码到c的时候,经常会出现一个奇怪的错误:“error C2275: “xxxxx”: 将此类型用作表达式非法”这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部...