2 wolfmanthing WolfmanTHING 于 2016.01.15 16:28 提问

初级C语言,编译无错,运行出错,大家帮帮!

#include
#define N 5
struct stu
{
int numb;
char nam[20];
double sco[3];
};
void main()
{
struct stu st[N];
int i,j,count=0;
for(i=0;i<N;i++)
{
scanf("%d",st[i].numb);
scanf("%s",st[i].nam);
for(j=0;j<3;j++)
scanf("%f",st[i].sco[j]);
}
for(i=0;i<N;i++)
printf("%12d%8s%5f%5f%5f",st[i].numb,st[i].nam,st[i].sco[0],st[i].sco[1],st[i].sco[2]);
}

8个回答

91program
91program   Ds   Rxr 2016.01.15 16:50

运行出错,你想要的结果是什么?错误的结果又是什么呢?

91program
91program   Ds   Rxr 2016.01.15 16:50

运行出错,你想要的结果是什么?错误的结果又是什么呢?

91program
91program   Ds   Rxr 2016.01.15 16:55

建议你自己单步调试一下,看看各步输出的东东是否正确?

fuyun11
fuyun11   2016.01.15 17:04

scanf语句需要加地址运算符,scanf("%d",&st[i].numb);
scanf("%f",st[i].sco[j])则需要先赋给临时变量,再赋值。float f;scanf("%f",&f); f = st[i].sco[j];

moqj_123
moqj_123   2016.01.15 17:14

结构体数组没有初始化,struct stu[5]这样初始化是不对的。我给个小例子你运行看看;
void main()
{
struct stu st[2]={{1,"name1",{1,2,3}},{2,"name2",{4,5,6}}};
int i,j,count=0;

for(i=0;i<2;i++)
printf("%12d,%8s,%5f,%5f,%5f\n",st[i].numb,st[i].nam,st[i].sco[0],st[i].sco[1],st[i].sco[2]);

}
一定要记住结构体数组一定要在定义的时候初始化,st[N]这样初始化是不对的,没有内存分配,还是0xcccccccc,所以输入一个数,回车就会崩了程序

moqj_123
moqj_123   2016.01.15 17:19
fk002008
fk002008   2016.01.15 17:23

1-- #include后面怎么没东西
scanf函数原型在头文件“stdio.h”中

2--scanf进行输入时候,语法错误漏
scanf(“格式控制字符串”, 地址表列);
地址是由地址运算符“&”后跟变量名组成的

所以第一步 把头文件补齐
第二步scanf处使用地址

scanf("%d",st[i].numb)
改成
scanf("%d",&(st[i].numb))
其他的scanf也改下
如有帮助还请采纳

qq_27183003
qq_27183003   Ds   Rxr 2016.01.17 21:17
 #include<iostream>
using namespace std;
#define N 1
struct stu
{
    int numb;
    char nam[20];
    double sco[3];
};
void main()
{
    struct stu st[N];
    int i,j,count=0;
    for(i=0;i<N;i++)
    {
        scanf("%d",&st[i].numb);//加取地址运算符&
        scanf("%s",st[i].nam);
        for(j=0;j<3;j++)
            scanf("%lf",&st[i].sco[j]);//修改输入格式%lf,加取地址运算符&
    }
    for(i=0;i<N;i++)
        printf("%12d%8s%5.2lf%5.2lf%5.2lf\n",st[i].numb,st[i].nam,st[i].sco[0],st[i].sco[1],st[i].sco[2]);//修改格式
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!