c语言输入您一个数字,数字在c语言中如何表明

今日的这道题型呢,跟大家以前讲过的PAT甲级之中的一道“写下这一数”有点儿相近。

全是需要键入一个整数,打印出出相对应整数所对应的拼音,只不过今日这道题型呢相对而言略微简易一些,而以前那道还规定和,再打印出对应的拼音。

大家先一起来看看题型规定,当整数为负值时,先输出打印fu字,整数包括负值、零和正数。

在一行中輸出这一整数对应的拼音,每一个数字之间的拼音用空格分离,行末沒有最终的空格。

整理逻辑性

1、键入一个整数,不容置疑是能够用到一个scanf涵数的。

2、整数所对应的拼音,大家必须用到一个二维数组来储存这些拼音。

3、当整数为负值时,大家必须对键入的整数开展一个if语句分辨,假如低于零,那麼就完成一个独立探讨。

4、每一个数字之间的拼音用空格分离,行末沒有最终的空格,我们可以用到一个计数法,还可以用到一个if语句分辨,到个位的过程中也不打印出空格。

5、这题既可以用递归算法的方法,还可以立即去求。

编码完成

我就用的第一种方式 ,是递归函数。

//念数字#include <stdio.h>#include <string.h>void recursive(int q){//不用传参,我便立即那么写 char *pingyin[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; if(q>9){//假如q有十位数得话,那么就除于10求整,假如q仅仅个位得话,那么就立即分离出来 recursive(q/10);//立即求整 printf(" "); //递归算法关键目标便是把值给写出去就可以了 }printf("%s",pingyin[q]);}int main(){ int n; scanf("%d", &n); if(n<0){ printf("fu "); recursive(-n); }else{ recursive(n); }}

我就用的第二种方式 ,用二维数组来储存键入整数的每个数字,随后相匹配拼音字母。

//念数字#include <stdio.h>#include <string.h>int main(){ int n; char *pingyin[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; int store[10]; int i=0; int count = 0;//计数法来给出空格 scanf("%d", &n); if(n==0){//当键入整数相当于0的情况下,要开展独立探讨 printf("ling"); }while(n!=0){ if(n>0){ store[i]= n; n = n/10; i ; }else{ store[i]= -n; n = -n/10; i ; printf("fu "); }}while(i>0){ i--; if(count>0){ printf(" "); }printf("%s",pingyin[store[i]]); count ; }}

結果检测

汇总

总体来说,由于拥有以前那道问题的工作经验,这道题型进行就特别快了,但是或是得留意二维数组的使用方法,及其递归函数的逻辑性,在应用递归函数的情况下,因为我常常会产生难题,得细心认真再细心才行。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

 Theme By 优美尚品

每日搜寻全球各个角落的热点新闻,锁定小童说事网,多一点惊喜与感动!