c语言一个简单的自定义函数的问题 - 爱问答

(爱问答)

c语言一个简单的自定义函数的问题

为什么我的代码用了自定义函数后就会报错,是不是自定义函数不能直接调用main(其他)函数的常量?帮我修改一个代码,谢谢

c语言一个简单的自定义函数的问题

#include<stdio.h>

 

int main()

{

int print();

int num,count = 0,i = 0;

char chinanum[10][4] = {"壹","贰","叁","肆","伍","陆","柒","捌","玖"};

int ge[9];//保存数字各位

printf("请输入要转换的数字:");

scanf("%d", &num);

while(num != 0)

{

ge[i] = num % 10;

num /= 10;   //去掉最后一位

i++;         

count++; //位数+1

}

printf("共有%d位数字,",count);

printf("每一位数字对应的中文数字: ");

 

print();//调用自定义函数print

return 0;

}

 

int print()

{

for(i = 0; i < count; i++)

{

printf("第%d位数字为:%d,%s",i+1,ge[i],chinanum[ge[i]]);

printf(" ");

}

}


程序存在语法错误,错误如下:

1. print函数中用到的chinanum、ge和count变量没有作为形参传入,导致变量未定义。需加上chinanum、ge和count的形参声明。

2. print函数无需返回值,可将返回值类型改为void。

3. print函数的声明最好放在main函数之外,看上去清晰一些。


程序存在逻辑错误,错误如下:

1. chinanum数组重的字符串是从0开始索引的,而ge[i]的值是从1开始的,所以chinanum[ge[i]]表示的值会比ge[i]多1,需改为chinanum[ge[i]-1]。

2. print输出的各位数字是倒序的,可以将print函数的循环语句改为“for(i = count - 1; i >= 0; i--)”,实现正序输出。


附上修改后的程序,以供参考:


#include <stdio.h>

 

void print(char chinanum[][4], int ge[], int count);

 

int main()

{

    int num, count = 0, i = 0;

    char chinanum[10][4] = {"壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};

    int ge[9];

    printf("请输入要转换的数字:");

    scanf("%d", &num);

    while (num != 0) {

        ge[i] = num % 10;

        num /= 10;

        i++;

        count++;

    }

    printf("共有%d位数字,", count);

    printf("每一位数字对应的中文数字: ");

    print(chinanum, ge, count);

    return 0;

}

 

void print(char chinanum[][4], int ge[], int count)

{

    int i;

    for (i = count - 1; i >= 0; i--) {

        printf("第%d位数字为:%d,%s ", i + 1, ge[i], chinanum[ge[i] - 1]);

    }

}

相关标签:c语言

下一篇:怎么用串口数据做MATLABGUI的温度曲线图

上一篇:这个怎么打出来大神求指教

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?