李龙江 发表于 2019-10-14 20:07:58

一道C语言习题

这个该怎么编啊?我是一个初学者,完全没见过这种啊

人造人 发表于 2019-10-14 21:56:51

#include <stdio.h>
#include <string.h>

int main(void)
{
      size_t num;
      printf("请输入一个数:");
      scanf("%lu", &num);

      char buf;
      snprintf(buf, 10, "%lu", num);
      size_t len = strlen(buf);

      printf("这是一个%lu位数\n", len);
      for(size_t i = 0; buf; ++i)
                printf("%lu -> %c\n", i, buf);
      return 0;
}


请输入一个数:15237
这是一个5位数
0 -> 1
1 -> 5
2 -> 2
3 -> 3
4 -> 7

gmTcover 发表于 2019-10-14 22:21:10

一个for循环不断num/10 记数 每次都乘10
weishu *=10
因为num是int 最后首位为0结束循环
第二个循环
digit= num / weishu
printf digit
weishu /10

位数首位为0结束循环,我也是新手
页: [1]
查看完整版本: 一道C语言习题