#include <stdio.h>
void f(int*p){
int count=0,temp,temp2;
temp=*p;
while(temp!=0){
temp/=10;
count++;
}
temp=*p;
while(count!=0){
temp2=temp%10;
temp/=10;
printf("%d",temp2);
count--;
}
}
int main(){
int *p,a;
printf("请输入一个正整数:");
scanf("%d",&a);
p=&a;
f(p);
return 0;
}
chatgpt改进版:
-
在函数
f
中,可以避免使用两个循环来逆序输出整数的各个位数。可以使用递归的方式,先输出当前位的数字,然后递归调用函数f
处理下一位数字。 -
在
main
函数中,可以省略变量p
,直接传递地址给函数f
。#include <stdio.h> void f(int num) { if (num < 10) { printf("%d", num); } else { int lastDigit = num % 10; printf("%d", lastDigit); f(num / 10); } } int main() { int a; printf("请输入一个正整数:"); scanf("%d", &a); f(a); return 0; }