为什么将int换成char,结果就不一样了。

这是求三个数中的最大数#include<reg52.h>#include<stdio.h>voiduart_init(){SCON=0x50;TMOD=(TMOD&0xf... 这是求三个数中的最大数
#include <reg52.h>
#include <stdio.h>

void uart_init()
{
SCON = 0x50;
TMOD =(TMOD & 0xf)/ 0x20;
TH1 = 221;
TR1 =1;
TI =1;
}
int max(int a,int b,int c)
{ int temp;
temp=a>b?a:b;
temp=temp>c?temp:c;
return temp;
}
void main()
{
int x=10,y=40,z=30,f=50,result=0;
uart_init();
result=max(x,y,z);
printf("x=%d,y=%d,z=%d,",x,y,z);
printf("\nthe largest number is %d.",result);
while (1)
{}
}
最后输出:
X=10,Y=40,Z=30,
The largest number is 40.
如果我装文中所有出现过的int 换成char后,
#include <reg52.h>
#include <stdio.h>

void uart_init()
{
SCON = 0x50;
TMOD =(TMOD & 0xf)/ 0x20;
TH1 = 221;
TR1 =1;
TI =1;
}
char max(char a,char b,char c)
{ char temp;
temp=a>b?a:b;
temp=temp>c?temp:c;
return temp;
}
void main()
{
char x=10,y=40,z=30,f=50,result=0;
uart_init();
result=max(x,y,z);
printf("x=%d,y=%d,z=%d,",x,y,z);
printf("\nthe largest number is %d.",result);
while (1)
{}
}
最后输出:
X=2600,Y=7680,Z=0,
The largest number is 10280.
展开
 我来答
百度网友9746fdc
2012-03-06 · TA获得超过270个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:206万
展开全部
char是字符类型的,首先你的定义就有点问题,其次直接按整型方式输出字符型变量,程序会默认将字符型变量按ASCII编码 转换后再输出。
追问
也就是说我要想用到printf输出,就要定义int变量。那我现在用char,为什么结果是2600呢。这个怎么来的,就算按字符转ASCII那也应该是3130才对啊,还请指教一下。
TableDI
2024-07-18 广告
当我们谈到Python与Excel的拆分时,通常指的是使用Python的库来读取Excel文件中的数据,然后根据某种逻辑(如按行、按列、按特定值等)将数据拆分成多个部分或输出到新的Excel文件中。上海悉息信息科技有限公司在处理这类任务时,... 点击进入详情页
本回答由TableDI提供
secretmvp0316
2012-03-06
知道答主
回答量:14
采纳率:0%
帮助的人:15.2万
展开全部
输出时用的格式串错了,把%d改为%c就行了
追问
那也不行啊:
结果变成:
X=
,Y=(,Z=,
the largest number is (.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaojinleiand
2012-03-07
知道答主
回答量:22
采纳率:0%
帮助的人:13.9万
展开全部
没问题,我亲自验证了。看看是不是此程序与其他程序在一起执行呀?把工作空间关了,然后重新运行,看看可以吗。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式