c语言 写两个子函数 一个输入一个输出 为什么我的代码不能实现

#include<stdio.h>voidinput();voidoutput();voidmain(){intn;input();output();}voidinput... #include<stdio.h>
void input();
void output();
void main()
{
int n;
input();
output();
}

void input()
{
int i,b[20];
printf("输入%d个数:\n",n);
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&b[i]);
}
}

void output()
{
int i,b[20];
printf("这些数字是:\n");

for(i=0;i<n;i++)
{
printf("%4d",b[i]);
}
}
展开
 我来答
沧海雄风2009
2018-03-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2861万
展开全部
#include <stdio.h>

void input();
void output();

int n;      //既然不传参
int b[20];  //就搞成全局变量

void main()
{
input();
output();
}

void input()
{
int i;
printf("输入个数:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&b[i]);
}
}

void output()
{
int i;
printf("这些数字是:\n");

for(i=0;i<n;i++)
{
printf("%4d",b[i]);
}
}
输入个数:
3
12
43
56
这些数字是:
12  43  56Press any key to continue
更多追问追答
追问
谢谢!如果不用全局变量的话应该怎么做呢?辛苦了💦
追答

那就需要传参了 

我改一份给你

#include <stdio.h>
 
void input();
void output();
 
void main()
{
    int n=0;    
    int b[20];  
    input(b,&n);
    output(b,n);
}
 
void input(int *a,int *n)
{
    int i,num=0;
    printf("输入个数:\n");
    scanf("%d",&num);
*n=num;
    for(i=0;i<num;i++)
    {
        scanf("%d",&*(a+i));
    }
}

void output(int *a,int n)
{
    int i;
    printf("这些数字是:\n");

    for(i=0;i<n;i++)
    {
        printf("%4d",*(a+i));
    }
}

输入个数:
3
11 22 33
这些数字是:
11  22  33Press any key to continue
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式