求大神看一下我的这个C语言哪里出错了

#include <stdio.h>
#include <string.h>

void main()
{
struct student
{
int num;
char name[20];
double score[3];
}stu;

void print( struct student );

stu.num = 8;
strcpy( stu.name, "Fishc.com" );
stu.score[0] = 99;
stu.score[1] = 89;
stu.score[2] = 98;

print( stu );
}

void print( struct student stu )
{
printf("num : %d\n", stu.num);
}
编译之后出错,不知道为什么

#include <stdio.h>
#include <string.h>

struct student
{
    int num;
    char name[20];
    double score[3];
};
void print(student* stu);
void main()
{
    student stu;
    stu.num = 8;
    strcpy(stu.name, "Fishc.com" );
    stu.score[0] = 99;
    stu.score[1] = 89;
    stu.score[2] = 98;
    print(&stu);
}
void print(student* stu)
{
    printf("num  : %d\n", stu->num);
}

主要错误:结构体使用和赋值,对照一下吧。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-06
因为你定义的结构体在miain函数内部,函数print无法获得,所以print的参数就不完全,把student结构体定义成全局的即可(即放在main外面)
第2个回答  2013-09-06
struct student定义在main函数里面,在定义print函数的时候并没有student student的声明,所以报错,你可以把student student的声明放在main函数的外面
第3个回答  2013-09-06
void print( struct student ); 你的这个应该放在void main整个函数的前面,不能在里面
第4个回答  2013-09-06
...\main.cpp(26) : error C2027: use of undefined type 'student'
...\main.cpp(24) : see declaration of 'student'
编译错误的意思是print的参数stu没有定义类型,原因是你的student类型定义在main函数里,只在main函数内部起作用。修改方法是把这个定义提到main外头就可以了。

修改后代码如下,经测试运行成功:
#include <stdio.h>
#include <string.h>
struct student
{
int num;
char name[20];
double score[3];
}stu;
void main()
{
void print( struct student );
stu.num = 8;
strcpy( stu.name, "Fishc.com" );
stu.score[0] = 99;
stu.score[1] = 89;
stu.score[2] = 98;
print( stu );
}
void print( struct student stu )
{
printf("num : %d\n", stu.num);
}本回答被提问者采纳

一道c语言编程题求大神解答,找一下我错在哪了,谢谢了?
没有语法错误,只能说明在格式上没有找到错误,还不一定是正确的,更不要说能够正确执行了。没有语法错误,有三种可能:1、格式没问题,但算法错误;2、格式没问题,但不符合要求,导致计算结果错误;3、格式没问题,且算法没问题,能够计算出正确结果。只有符合第3种情况,才是正确的程序。

刚学c语言,请大神看一下,哪里错了
你好,代码没有错,只是你在输入重力时,输入的格式没有按要求来输入重力g,正确的输入g应该是这样的,请看下图。希望能帮到你。

我哪里错了?求大神告知(下图)
你的C语言程序主要是mian函数拼错了,应该是main,造成的编译错误 改正后的程序(见图,改动地方见注释)

...int",求大神帮我看下这个c语言程序的错误出在哪里
语法错了,函数参数格式不正确,作为函数参数的二维数组格式要写成a[][],或者把[]中维数补全,不能用变量做数组维数。

这个C语言代码执行不起来,求大神看下哪里出错了需要改下
把float b = 123.96;改成float b = 123.96f;。把printf ("a=%d,%5d,%o,%x\\n",a,a,a,a,);改成printf ("a=%d,%5d,%o,%x\\n",a,a,a,a);。把printf ("b=%f,%lf,%5.4lf,%7.2e\\n",b,b,b,b,);改成printf"b=%f,%lf,%5.4lf,%7.2e\\n",b,b,b,b);。

我想问一下为什么这个C语言程序运行出错了? #include<stdio.h> #inclu...
主要原因是**p=NULL;这句是说p所指的地址为0,你的p[m]=(int *)malloc(4);就可以看成*(p+m),此时p为0,m也为0,也就是对*(0)进行了赋值,对0地址是不允许进行赋值操作的

求我这个C语言程序那里出错了 另外找个C语言程序师傅...我想输出love...
回答:首先, char a="love mj";是错的语句。 不能直接对字符数组赋值,应该这样: a[1]='l'; a[2]='o'; ………… 而且函数不能返回一个字符数组,只能返回一个单个的字符。 只有这个是正确的: char love() { char a='l'; return a ; } 而这个也不正确: char love() { char a[3...

求大神帮看一下这个C语言程序哪错了,谢谢! 错误提示是expected expressio...
double calculate_charges(double);void main(){ int i,d,a;double b,c,m;c=0;d=0;float num[4];m=num[a];for(i = 1;i<=3;i++){ printf("Please enter your parking hour: ");scanf("%d",&num[a]);printf("Car%d ",i);c = c + calculate_charges(b);d=d+num[a]...

c语言大神帮我看看,为什么结果输出不对,输入27638496,要求结果64862_百 ...
你的主函数main 里的输入输出语句的标示符%1d写错了,应该是%ld(小写的LD)而不是%1d(数字1小写D),把main函数中的scanf("%1d",&n);改成scanf("%ld",&n); 把printf("\\nThe result is:%1d\\n",get_even(n));改成printf("\\nThe result is:%ld\\n",get_even(n));就没有问题了.

C语言 编程后,有错误,怎么查看是那部分出错了!
【编写完代码后直接编译,如果有错误,编译器会自动弹出提示的】例子如下:如上图简单的C程序,编写完之后直接点击编译,然后会弹出错误信息,如下图所示:修改错误之后,再次编译就可以得到正确的输出结果,如下图所示:

相似回答