写出这个数——《C语言代码笔记》

今天碰到这个题,考到许多小知识点,可为难死博主了。

废话不多说,上题

写出这个数

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789

1

1234567890987654321123456789

输出样例:

yi san wu

1

yi san wu

题目解析

输入一个数n,n小于10100

所以我们的n就不能用int定义了,最好选择用字符数组定义

输出的是n的各位之和,但是要用拼音表示所输出的数的每一位

即:如图

程序详解流程图

代码示例

#include<stdio.h> int main() { char* res[]={"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu", "shi"}; //定义1-10拼音数组 char num[100]; //用于存放输入的n scanf("%s", &num); int sum=0, i=0, c=0, j=0, b[3]={0}; while(num[i]!='\0')//求和 ,和的范围为(0-900) { sum+=num[i]-'0'; //字符变整型 i++; } for(j=0; j<3; j++)//拆分并保存至长度为3的b数组 { b[j]=sum%10; sum/=10; if(sum==0) break; } while(j>=0) { if(j>0) printf("%s ", res[b[j]]); else printf("%s\n", res[b[j]]);//保证输出格式 j--; } return 0; // }

1234567891011121314151617181920212223242526272829

#include<stdio.h>int main(){    char* res[]={"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu", "shi"}; //定义1-10拼音数组     char num[100]; //用于存放输入的n scanf("%s", &num); int sum=0, i=0, c=0, j=0, b[3]={0}; while(num[i]!='\0')//求和 ,和的范围为(0-900) {     sum+=num[i]-'0'; //字符变整型     i++;     }    for(j=0; j<3; j++)//拆分并保存至长度为3的b数组     {        b[j]=sum%10;          sum/=10;         if(sum==0)        break;      }    while(j>=0)    {        if(j>0)        printf("%s ", res[b[j]]);         else        printf("%s\n", res[b[j]]);//保证输出格式         j--;       }    return 0; //}

其他代码

#include<stdio.h> #include <stdlib.h> #include <string.h> void printf_num(int num) { int zonghe[10]; char *name[] ={"ling","yi","er","san","si","wu","liu","qi","ba","jiu","shi"}; int i=0; for(i=0;num>=10;i++){ zonghe[i]=num%10; num=num/10; } zonghe[i++]=num; while(i--){ if(i!=0){ printf("%s ",name[zonghe[i]]); }else{ printf("%s\n",name[zonghe[i]]); } } } int main(){ char n[100]; char *p=n; int sum=0; int i=0; scanf("%s",n); while(*p!='\0'){ sum = sum + (*p - '0'); //(*p - '0')将字符型数字转化为整型数字 p++; } printf_num(sum); return 0; }

12345678910111213141516171819202122232425262728293031323334353637

#include<stdio.h>#include <stdlib.h> #include <string.h>void printf_num(int num){  int zonghe[10];  char *name[] ={"ling","yi","er","san","si","wu","liu","qi","ba","jiu","shi"};  int i=0;  for(i=0;num>=10;i++){    zonghe[i]=num%10;    num=num/10;  }  zonghe[i++]=num;  while(i--){    if(i!=0){      printf("%s ",name[zonghe[i]]);    }else{    printf("%s\n",name[zonghe[i]]);    }  }} int main(){  char n[100];  char *p=n;  int sum=0;  int i=0;   scanf("%s",n);   while(*p!='\0'){    sum = sum + (*p - '0');  //(*p - '0')将字符型数字转化为整型数字    p++;  }  printf_num(sum);  return 0;}

运行截图


注意事项

1.拼音不要写错

2.输出格式要牢记,以及%c ,%s的应用

3.return 0;


本次分享就到这里,如有兴趣请关注小文’s blog

如果你有C语言难题可以在评论区留言,博主将在第二天为您讲解

如有任何意见请留言或者评论,本人一定采取。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Albert陈凯

Hadoop数据分析平台实战——060深入理解MapReduce 01(案例)离线数据分析平台实战——060深入理解MapReduce 01(案例)

离线数据分析平台实战——060深入理解MapReduce 01(案例) 用户自定义数据类型 MapReduce中的数据类型至少有两种用途。 第一个用途,这些类...

2789
来自专栏阮一峰的网络日志

async 函数的含义和用法

本文是《深入掌握 ECMAScript 6 异步编程》系列文章的最后一篇。 Generator函数的含义与用法 Thunk函数的含义与用法 co函数库的含义...

2666
来自专栏有趣的django

5.python函数

函数介绍 定义:  函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。 特性:减少重复代码、使程序变的可扩展、使程...

2636
来自专栏coding

redis集合类型详解

1053
来自专栏我是攻城师

ElasticSearch里面一些小坑笔记

3404
来自专栏我和PYTHON有个约会

19. 再说函数~那些不得不知道的事儿

前面的课程中,我们已经对函数有了简单的了解 函数的声明、函数的的调用、函数的参数以及返回值等等

703
来自专栏WebHub

说说这个this啊

上述代码中foo()不带任何修饰函数引用进行调用的,因此只能使用默认绑定,无法应用其他规则。 像这种独立函数调用是最常见的方式。值得一提的是在严格模式下,全局对...

949
来自专栏Golang语言社区

golang的{}初始化

之前说到Golang中某些类型可以赋值nil, 某些类型不能赋值nil. 不能赋值nil都是initialized value不为nil的类型, 例如: boo...

3519
来自专栏GopherCoder

Python 强化训练:第六篇

1704
来自专栏ccylovehs

浅析JavaScript正则表达式

  正则表达式是一个描述字符模式的对象。JavaScript的RegExp类表示正则表达式,String和RegExp都定义了方法,后者使用正则表达式进行强大的...

432

扫码关注云+社区