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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
转载 VS2017 编译错误
article&amp;gt; &amp;lt;div id=&quot;article_content&quot; class=&quot;article_content csdn-tracking-statistics&quot; data-pid=&quot;blog&quot; data-mod=popu_307 data-dsm = &quot;post&quot; &amp;gt; &amp;lt;div class=&quot;markdown_
c语言编译、运行时出现错误
编译时: (1)error: array type has incomplete element type 报错一行的代码为 long long prim(int cost[][],int n,int u) 二维数组作为参数不能这样输入,应输入为 int cost[][max]; 或者 int(*)cost[]; 以下的输入同样不符合规定: int* cost[]; in
初学者使用vs2013编译c语言程序遇到问题及解决办法。
初学者用vs2013编译c语言程序遇到问题以及解决办法。
使用makefile编译C语言文件遇到的问题
第二个问题是关于makefie的。众所周知,使用makefile可以对多个源文件进行编译,非常的方便简捷。但是在学习的过程中我遇到了一些小问题。使用makefile和在主函数所在的文件直接incldue其他文件有什么区别呢? 首先先举两个例子   第一个例子: file1.c: #include "stdio.h" void main() { int
C语言出错中英文对照表
能帮助你在c语言运行出错是理解哪里出错,能更快的通过编译
C语言常见编译错误与执行错误
编写fasync_jni应用程序放在Tiny210开发板上跑会出现如下错误: 然后编写一个最简单的hello world程序放在Tiny210开发板上跑也会出现类似这样的错误:hello: line 1: syntax error: unexpected word (expecting “)”)解决办法:加上-static选项,arm-linux-gcc hello.c –static –o he
简化的粒子群优化算法C/C++
简化的粒子群优化算法,C/C++语言编写,编译无错,结构简单,可以运行。
C语言代码,求高手解答,为什么没有错误,但是结果不对
#include #include char *cmonth(int month) { char str_month[]={ "Illegal Month" "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November"
大家的日语1.2册 PDF
大家的日语1.2册 ,希望对在学日语的初级朋友有所帮助
C语言里程序编译无误但运行会弹出程序已停止运行是为什么?
C语言里程序编译无误但运行会弹出程序已停止运行是为什么?原文链接(https://zhidao.baidu.com/question/1178139670043658699.html) 摘要 1. 内存溢出 内存溢出(out of memory)通俗理解就是内存不够,程序所需要的内存远远超出了主机内安装的内存所承受大小,就叫内存溢出。系统会提示内存溢出,有时候会自动关闭软