标签:这一 ascii 比较 style back i++ acs include for
感觉自己绝对是一个弟弟,啥都看不明白。
10^50怎么可能用整形定义,字符串也是王道,介绍一种char转int的方法 sum+=table[i]-‘0‘
哈哈哈哈哈,我也看不明白,所以从百度上白嫖了一个说法:
应该是把字符型数据转换为整型,在ACSII码表中,字符‘0’的十进制值是48,假设有一个字符为‘0’,那么计算机识别出来的十进制值是48,而不是0。所以可以通过问题上的公式可以把字符型的0转化为整型的0。同理,可以把1到9的字符转换成整型的1到9,看一下ASCII码表就懂了,不难的。通俗来讲就是一个数据类型的转换,这种操作在单片机上的数据转换用得会比较多,但一般是反过来用,把十进制的整型数字转换成字符型数字,然后在一些显示设备上打印出来......
总结一下,就是看ACSII码,其他的都是废话,附带一个样例
整数分类 |
||
Description |
||
按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类。比如说24,2+4=6,则24的类别数是6;39,3+9=12,1+2=3,则39的类别数是3。 输入每行输入一个非负整数n,n≤10500,n为0时结束。 输出每行输出对应整数的分类数。 |
#include<stdio.h>
int main()
{
char table[510];
int i,sum;
while(scanf("%s",table)!=-1)
{
if(table[0]==‘0‘) break;
else
{
sum=0;
for(i=0;table[i]!=‘\0‘;i++)
{
sum+=table[i]-‘0‘;//反正这一句很关键,要不然输出的是一个意想不到的数.....
}
while(sum>9)
{
sum=sum%10+sum/10;
}
printf("%d\n",sum);
}
}
return 0;
}
标签:这一 ascii 比较 style back i++ acs include for
原文地址:https://www.cnblogs.com/Torebtr/p/11726978.html