修正以下代码#include <stdio.h> int inverse(int n) //1 { int s,sum; do { s = n%10; sum = sum + s*10; n = n/10; } while ( n != 0 ); return (n); } void main() { int n; printf("input:"); scanf("%d", &n); // printf("output:%d\n", inverse(n)); }
时间: 2024-01-13 22:02:31 浏览: 147
#include <stdio.h>
4星 · 用户满意度95%
修正代码如下:
```c
#include <stdio.h>
int inverse(int n)
{
int s,sum=0; // 对sum进行初始化
do
{
s = n%10;
sum = sum*10 + s; // 将s乘以10的幂次方累加到sum中
n = n/10;
} while ( n != 0 );
return sum; // 返回结果sum
}
int main() // 修改主函数的返回值类型
{
int n;
printf("input:");
scanf("%d", &n);
printf("output:%d\n", inverse(n)); // 打印函数返回值
return 0; // 返回0表示程序正常结束
}
```
修正后的代码中,`sum`变量被初始化为0,并在循环中将每个位上的数字乘以10的幂次方后累加到`sum`中。`inverse`函数返回的是`sum`,而不是错误的`n`。主函数的返回值类型被修改为`int`,并在函数结尾处返回0,表示程序正常结束。
阅读全文