Online Compiler C

#include <stdio.h> void transfer(int a){ int result; int index; while(a>0){ result[index++]=a%3; a=a/3; } for(int i=index-1;i>0;i--){ printf("%d ",result[i]) ; } } int main() { int n; scanf("%d ",&n); if(n>0){ printf("%d ",transfer(n)); } return 0; }
1) 这段代码试图将一个正整数n转换为三进制表示,并逆序输出转换后的数字。但代码中存在几个错误:数组result未声明大小,index未初始化,且transfer函数没有返回值却试图打印返回值。

2) 提示:
- 数组result需要预先定义大小,比如int result[32]
- transfer函数声明为void类型,但在main中却试图打印它的返回值,这会导致问题