回 帖 发 新 帖 刷新版面

主题:[讨论]这个是什么问题?

#include<stdio.h>
void main()
{
    int pn;
    void input(char name[][30],int num[]);
    scanf("%d",&pn);
    input(name,num);
}

void input(char name[pn][30],int num[pn])
{
    int i;
    for(i=0;i<pn;i++)
    {
        printf("\n%d.Name:",i+1);
        gets(name[i]);
        printf("Number:");
        scanf("%d",&num[i]);
    }
}


运行结果:
--------------------Configuration: c - Win32 Debug--------------------
Compiling...
c.c
G:\Learning Files\C语言\a\c.c(7) : error C2065: 'name' : undeclared identifier
G:\Learning Files\C语言\a\c.c(7) : warning C4047: 'function' : 'char (*)[30]' differs in levels of indirection from 'int '
G:\Learning Files\C语言\a\c.c(7) : warning C4024: 'input' : different types for formal and actual parameter 1
G:\Learning Files\C语言\a\c.c(7) : error C2065: 'num' : undeclared identifier
G:\Learning Files\C语言\a\c.c(7) : warning C4047: 'function' : 'int *' differs in levels of indirection from 'int '
G:\Learning Files\C语言\a\c.c(7) : warning C4024: 'input' : different types for formal and actual parameter 2
G:\Learning Files\C语言\a\c.c(10) : error C2065: 'pn' : undeclared identifier
G:\Learning Files\C语言\a\c.c(10) : error C2057: expected constant expression
G:\Learning Files\C语言\a\c.c(10) : error C2466: cannot allocate an array of constant size 0
G:\Learning Files\C语言\a\c.c(10) : error C2057: expected constant expression
G:\Learning Files\C语言\a\c.c(10) : error C2466: cannot allocate an array of constant size 0
执行 cl.exe 时出错.

c.exe - 1 error(s), 0 warning(s)


PS:这是我自己简化出来的程序部分,是哪里出问题呢?应该怎么改呢?

回复列表 (共4个回复)

沙发

你的name和num在main里没声明过。注意形参和实参的区别
还有pn,注意这是一个局部变量,没有传进input函数里,当然不能被直接使用了。

板凳

顶楼上!!!

3 楼

#include<stdio.h>
#define  pn 5 /* 宏定义,pn为5*/
void input(char name[pn][30],int num[pn])
{
    int i;
   
    for(i=0;i<pn;i++)
      {  printf("请输入编号为%d的学生的姓名以及学好\n:",i+1);
         scanf("%s%d",name[i],&num[i]);
      }
      
}

void main()
{   int i;
    char name[pn][30];
    int num[pn];
    input(name,num);
    for(i=0;i<pn;i++)
    printf("学好%d 的名字是%s\n",num[i],name[i]);  
}

4 楼

main好像不能是void型……

我来回复

您尚未登录,请登录后再回复。点此登录或注册