标题:不太理解sum=a+b+c+d+e-5*64,请教大家
只看楼主
Elean
Rank: 1
来 自:杭州
等 级:新手上路
帖 子:5
专家分:0
注 册:2021-10-7
结帖率:0
已结贴  问题点数:20 回复次数:6 
不太理解sum=a+b+c+d+e-5*64,请教大家
利用ASCII码简化
奇迹暖暖的衣服等级有A,B,C,D四个等级。5种属性,A等为1分,B等2分,C等3分,D等4分。(不符合游戏实际,不要在意细节啦)
Input
 输入五个字符(A-D,都是大写)各个字符中间用空格隔开
Output
 分数值,注意换行。
#include<stdio.h>
 int main(void)
{
int sum=0,a=0,b=0,c=0,d=0,e=0;
scanf("%c %c %c %c %c", &a, &b, &c, &d, &e );
sum = a + b + c + d + e - 5 * 64;
printf("%d\n", sum);
return 0;
}
搜索更多相关主题的帖子: 等级 字符 int sum stdio 
2021-11-12 10:28
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:7 
int 用%c读入是错的

https://zh.
2021-11-12 10:40
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
'A' - 65 是 1
'B' - 65 是 2
....
减去65 是'A'-'D' 转换到 1-4
5件衣服 就得减5次而已 索性直接乘起来而已

https://zh.
2021-11-12 10:42
Elean
Rank: 1
来 自:杭州
等 级:新手上路
帖 子:5
专家分:0
注 册:2021-10-7
得分:0 
回复 3楼 lin5161678
但是要求输入的是字符呀?
2021-11-12 19:51
Hhu_TF
Rank: 2
等 级:论坛游民
威 望:1
帖 子:20
专家分:63
注 册:2021-11-10
得分:7 
回复 4楼 Elean
建议查下ASCII码,虽然输入的是字母,但是输出%d,即输出整数型数字,字母将转换成对应的十进制数字(阅ASCII码),而字母对应的数字减去64就变成了对应的分数,就像楼上所说的那样。
2021-11-12 22:41
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
以下是引用Elean在2021-11-12 19:51:37的发言:

但是要求输入的是字符呀?

既然要输入字符
为什么不定义为char类型呢

https://zh.
2021-11-12 23:32
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:7 
输入为字符,scanf里要使用%c

A为1分,B为2分等递增,刚好对应字母顺序,而A的值是65,因此输入的字母通过输入值-64转换为分值。
sum=(a-64)+(b-64)+(c-64)+(d-64)+(e-64)
sum=a+b+c+d+e-64-64-64-64-64
sum=a+b+c+d+e-5*64
加法交换律,结合律
2021-11-13 23:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507483-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.224758 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved