ArLo182317 2022-03-08 16:28 采纳率: 86.7%
浏览 23
已结题

一个不太理解的C语言问题


1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     char s[100];
 6     char name[][10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
 7     int sum = 0;
 8     scanf("%s",s);
 9     for(int i=0; s[i] != '\0'; i++)
10     {
11         sum = sum + (s[i] - '0');
12     }
13     int asum[5];    //存储sum中的每个数
14     int j;
15     for(j=0; sum >= 10; j++)
16     {
17         asum[j] = sum % 10;
18         sum /= 10;
19      } 
20      asum[j] = sum;    //记录将sum中第一位数 
21      while(j>=0)
22      {
23          if(j != 0)
24              printf("%s ", name[asum[j]]);
25          else
26              printf("%s\n",name[asum[j]]);
27          j--;
28       } 
29     return 0;
30 }

img


这两个乡间是什么意思,为什么可以这样写?

  • 写回答

2条回答 默认 最新

  • Code_流苏 C/C++领域优质创作者 2022-03-08 16:39
    关注

    这个'0' 是一个字符'0' 对应ASII码表上的字符'0' 字符'0'对应的十进制值为48 '1':49 '2':50 ......
    拿S[i]-'0' 是为了转换成十进制的数值
    例如: s[i]为 字符'1'
    s[i] - '0' 就是十进制 的 1

    希望对题主有所帮助,可以的话,帮忙点个采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月16日
  • 已采纳回答 3月8日
  • 创建了问题 3月8日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效