自定义函数合成在main中运行不起来

来源:百度知道 编辑:UC知道 时间:2024/05/20 06:20:46
这样运行输入123就能输出123
而把注释去掉并把第一个main注释了设成自定义函数
就不能运行了
#include<stdio.h>
#define n 3
int main() //去注释并把此main()注释!
//void k()
{
char zo;
char a[n];
for(int i=0;i<n;i++)
{
zo=getchar();
if((zo>='0')&&(zo<='9'))
a[i]=zo;
else printf("!!");
}
for(int i=0;i<n;i++)
printf("%c",a[i]);
}
/*
int main()
{
int a;
scanf("%d",&a);
if(a==1)
k();
}
*/

如果用了scanf函数,后面再使用getchar会出错,修改如下可以运行:

#define n 3
//int main() //去注释并把此main()注释!
void k()
{
char zo;
char a[n];
for(int i=0;i<n;i++)
{
zo=getchar();
if((zo>='0')&&(zo<='9'))
a[i]=zo;
else printf("!!");
}
for( i=0;i<n;i++)
printf("%c",a[i]);
//return 0; //使用main函数时,需要返回值,使用k函数时,不需要返回值
}

int main()
{
int a = 1;

if(a==1)
k();

return 0; //int main(); 需要返回值
}

//void k()

你都吧函数注释了。。。