如果观看本文章的朋友之前用的是long long做的int,那么恭喜你也掉进陷阱了!!!!!!
言归正传,和Up主一起分析一下题吧~"~%?…,# *'☆&℃$︿★?"
- 这道题要用到字符串的!!!!!!因为long long最多只能表示19位的数字,所以用不要认为 “int 不够,long long凑齐”!
- 字符串的长度,因为最大的数字是1000位的,再加上末尾的 '\0',应该是1001。
-
字符串读入数字在转换成数字的问题:“ num[i] - '0' ”,ASCII码的原理
附源码:
#include <stdio.h>
int main()
{
char num[1001];
int a[10] = {0};
int i = 0;
scanf("%s", num);
for( ; num[i] != '\0' ; i++ )
{
a[ num[i] - '0' ]++;
}
for( i = 0 ; i < 10 ; i++ )
{
if( a[i] != 0 )
{
printf("%d:%d\n", i, a[i]);
}
}
return 0;
}