C语言调用函数

2025-03-24 10:50:50
推荐回答(2个)
回答1:

#define N 3
struct ex
{
char name;
char num;
double s[N];
};
以上这几行要挪到你的头文件的最开头。
代码里的%f要改为%lf。
这样,编译就不会报错了。
但一运行程序就会崩溃,因为还有两个问题:
1)
int main()
{
struct ex *p;
myname(p);
}
要改成:
int main()
{
struct ex p;
myname(&p);
}
2)
char name; ---》只有一个字节的空间,不论怎么输入都会内存越界,最好改用char数组
char num;---》只有一个字节的空间,不论怎么输入都会内存越界,最好改用char数组

回答2:

以下是头文件里编写的代码
void myname(struct ex *p)
{
int i=0,j=0,a=0;
do
{
printf("Name:");
scanf("%s",&(*p).name);
printf("Number:");
scanf("%s",&(*p).num);
printf("Score:");
for(i=0;i {
scanf("%f",&(*p).s[i]);
}
printf("Wether to continue?\n");
printf("Please continue to press 1\nOtherwise,Please press 2\n");
scanf("%d",&a);
j++;
}while(a==2);
}
以下是调用函数代码
#include
#include
#define N 3
struct ex
{
char name;
char num;
double s[N];
};
int main()
{
struct ex *p;
myname(p);
}
求大神帮忙看看应该怎么调用才正确,总是弄不对。有下面四个错误
--------------------Configuration: 草稿 - Win32 Debug--------------------
Compiling...
草稿.c
d:\microsoft visual studio\vc98\include\myself.h(8) : error C2037: left of 'name' specifies undefined struct/union 'ex'
d:\microsoft visual studio\vc98\include\myself.h(10) : error C2037: left of 'num' specifies undefined struct/union 'ex'
d:\microsoft visual studio\vc98\include\myself.h(12) : error C2065: 'N' : undeclared identifier
d:\microsoft visual studio\vc98\include\myself.h(14) : error C2037: left of 's' specifies undefined struct/union 'ex'
Error executing cl.exe.

草稿.obj - 4 error(s), 0 warning(s)