首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言结构体有关问题

2012-03-02 
C语言结构体问题#includestdio.hmain(){int i,jstruct student{int NOchar *NAMfloat MATHfloat ENG

C语言结构体问题
#include<stdio.h>
main()
{
int i,j;
struct student
{
int NO;
char *NAM;
float MATH;
float ENG;
float C;
float SUM;
}a[4];
for(i=0;i<4;i++)
{
printf("第%d个人的信息:\n",i+1);
for(j=0;j<4;j++)
{
printf("NO.:");
scanf("%d",&a[i].NO);
printf("\n");
printf("姓名:");
gets(a[i].NAM);
printf("\n");
printf("数学成绩:");
scanf("%f",&a[i].MATH);
printf("\n");
printf("英语成绩:");
scanf("%f",&a[i].ENG);
printf("\n");
printf("C语言成绩:");
scanf("%f",&a[i].C);
printf("\n");
a[i].SUM=a[i].MATH+a[i].ENG+a[i].C;
}

}
for(i=0;i<4;i++)
{
printf("第%d个人的信息:\n",i);
for(j=0;j<4;j++)
{
printf("NO.:%d\n",a[i].NO);
printf("\n");
printf("姓名:%S\n",a[i].NAM);
printf("\n");
printf("数学成绩%f\n:",a[i].MATH);
printf("\n");
printf("英语成绩:\n",a[i].ENG);
printf("\n");
printf("C语言成绩:\n",a[i].C);
printf("\n");
}
printf("\n");
}
}



编译和链接没问题输入数据时会出错不知道怎么回事

[解决办法]
char *NAM;
===>
char NAM[20 + 1];
[解决办法]

C/C++ code
printf("英语成绩:%f\n",a[i].ENG);//只能显示数学成绩是因为你这儿没有%fprintf("C语言成绩:%f\n",a[i].C);
[解决办法]
C/C++ code
#include<stdio.h>#include <iostream>void main(){    int i;    struct student    {        int NO;        char NAM[30];        float MATH;        float ENG;        float C;            float SUM;    }a[4];    for(i=0;i<4;i++)    {        printf("第%d个人的信息:\n",i+1);        printf("NO.:");        scanf("%d",&(a[i].NO));        printf("\n");        fflush(stdin);//刷一次输入缓冲区,gets可用        std::cin.sync();        printf("姓名:");        gets(a[i].NAM);        printf("\n");        printf("数学成绩:");        scanf("%f",&(a[i].MATH));        printf("\n");        printf("英语成绩:");        scanf("%f",&(a[i].ENG));        printf("\n");        printf("C语言成绩:");        scanf("%f",&(a[i].C));        printf("\n");        a[i].SUM=a[i].MATH+a[i].ENG+a[i].C;        }    printf("***************************************************\n");    for(i=0;i<4;i++)    {        printf("第%d个人的信息:\n",i+1);        printf("NO.:%d\n",a[i].NO);        printf("姓名:%s\n",a[i].NAM);        printf("数学成绩%f:\n",a[i].MATH);        printf("英语成绩%f:\n",a[i].ENG);        printf("C语言成绩%f:\n",a[i].C);        printf("总分是:%d\n\n",a[i].SUM);        }    system("pause");} 

热点排行