首页 学无止境C语言笔记正文

PAT乙级真题1002 || 写出这个数(C语言)

By无邪 C语言笔记 2019-12-08 19:12:00 328 0

C语言基础

image.png

#include<stdio.h>
int main(){
	char str[999];   /*此处定义了一个较大数组,会造成资源浪费。考虑到数字过大的情况,将输入的数据储存为字符串类型 */ 
	char str0[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};  /*使用二维数组定义字符串数组 */ 
	int i=0,j=0,sum=0,a;
	int sum0[999]; //存放和的每位数字 
	scanf("%s",str);     //输入数字 
	for(i;str[i]!='\0';i++){  //str[i]!='\0' 执行循环 遇到'\0'停止 
		sum+=(str[i]-'0');    //减去0的ascll码的值就是当前的值 
	}
	i=0;
	while(sum!=0){      //sum!=0执行循环 
		sum0[i]=sum%10;  //取最后一位 
		sum/=10;    
		i++;   
	}
	i--; /**/ 
	a=i;  /*a用于for循环限定循环次数,而i用于位数的递减*/
	for(j=0;j<=a;j++,i--){
		printf("%s",str0[sum0[i]]);  /*sum0[i]是先输出最大位,而sum0[i]的值正好对应str0[][]中的拼音*/ 
		if(j!=a) printf(" ");
	}
	return 0;
}


本文标题:PAT乙级真题1002 || 写出这个数(C语言)
本文链接:https://dingqidong.com/?id=108
作者授权:除特别说明外,本文由 By无邪 原创编译并授权 无邪-blog 刊载发布。
版权声明:本文使用「署名-非商业性使用-相同方式共享 4.0 国际」创作共享协议,转载或使用请遵守署名协议。

评论

关于我们
个人博客
关注本站微信号,享受更多服务!
联系方式
电话:
地址:
Email:
邮编:
Copyright ©2019-2020.Powered by©本站隶属于黎明工作室 鲁ICP备19054880号-1

鲁公网安备 37098302000619号

本站已安全运行:
召唤伊斯特瓦尔