这2个程序的区别,有些不明白???

来源:百度知道 编辑:UC知道 时间:2024/06/25 12:30:30
是将一个3位数(假设个位数不为0)的个位数和百位数进行交换,例如 输入一个123 得到321
一...
#include<stdio.h>
void main(){
int i,j,k,t;
printf("请输入一个三位数:");
scanf("%d%d%d",&i,&j,&k);
if(k!=0)
t=k;
k=i;
i=t;
printf("%d%d%d",i,j,k);
}

二 #include<stdio.h>
void main(){
char i,j,k;
printf("请输入一个三位数:");
scanf("%c%c%c",&i,&j,&k);
if (k!='0')
printf("%c%c%c\n",k,j,i);
else if (j!='0')
printf("%c%c\n",j,i);
else
printf("%c\n",k,j,i);
}

为什么定义成char类型的就可以?????? 有什么区别????
哪位高手解释一下

char是单个的字符,

而int类型的数字的话,你在scanf后输入123回车,i=123,而不是单个变量一个数字

%d - 获取一个整型数据,你输入123,那么123都给了i,而j,k一直等你输入后面的数
%c - 获取一个字符数据,你输入123,1给了i,2给了j,3给了k...

不是定义为char就行,主要看输入和输出.
就这样...