PAT考试乙级1002(C语言实现)

来源:互联网 发布:tcl刷机软件 编辑:程序博客网 时间:2024/06/05 18:05
#include<stdio.h>#include <string.h>#include <stack>using namespace std;void num_to_string(int n){    switch(n){            case 0:printf("ling");break;              case 1:printf("yi");break;              case 2:printf("er");break;              case 3:printf("san");break;              case 4:printf("si");break;              case 5:printf("wu");break;              case 6:printf("liu");break;              case 7:printf("qi");break;              case 8:printf("ba");break;              case 9:printf("jiu");break;      }}int main(){    char n[100]= {0};    int sum=0,i=0,len=0;    gets(n);    len = strlen(n);    for(i=0;i<len;i++){        sum+=n[i]-'0';    }    int num=0,count=0;    stack<int> st;    while(sum>9){        num=sum%10;        st.push(num);        sum/=10;        count++;    }    num_to_string(sum);    for(i=0;i<count;i++){        printf(" ");        num_to_string(st.top());        st.pop();    }    return 0;}

总结:
1、如何获得一段数字的长度:
char n[100]= {0};
gets(n);
len = strlen(n);
for(i=0;i<len;i++){
sum+=n[i]-'0';**//注意如何得到数组每一个元素,需要-'0'**
}

2、用栈 先进先出特点实现数字的存放和打印。
3、空格的打印也是难点之一。
4、由于C编译器比较严格,本答案只能C++编译器通过编译。

原创粉丝点击