首页 > 代码库 > kk Exercise 6.1 Convert an integer to words
kk Exercise 6.1 Convert an integer to words
Exercise 6-1. write a program that will prompt for and read a positive integer less than
1,000 from the keyboard, and then create and output a string that is the value of the
integer in words. For example, if 941 is entered, the program will create the string "Nine
hundred and forty one".
//#define __STDC_WANT_LIB_EXT1__ 1#include <stdio.h>#include <string.h>int main(void){ char *unit_words[] = {"zero", "one","two","three","four","five","six","seven","eight","nine"}; char *teen_words[] = {"ten", "eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"}; char *ten_words[] = {"error", "error","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"}; //上面的是什么意思? char hundred[] = " hundred"; char and[] = " and "; //就是这个字符。 and字符串有5+1个字符,其中一个是结束字符。 char value_str[50] = ""; int value = http://www.mamicode.com/0; // Integer to be converted int digits[] = {0,0,0}; // 这是什么意思?digit这个数组里面有三个值? int i = 0; printf("Enter a positive integer less than 1000: "); scanf_s("%d",&value); if(value >= 1000) value = 999; else if(value < 1) value = 1;//为什么不直接显示错误,而要非执行这个区间的值 while(value > 0) { digits[i++] = value % 10;//求得各位数! value /= 10;//十位以上的数字 } if(digits[2] > 0) { strcat_s(value_str, sizeof(value_str), unit_words[digits[2]]);// unit_WORDS[digits[2]]这是什么意思?圆程序? strcat_s(value_str, sizeof(value_str), hundred); if(digits[1] > 0 || digits[0] > 0) strcat_s(value_str, sizeof(value_str), and); } if(digits[1] > 0) { if(digits[1] == 1) strcat_s(value_str, sizeof(value_str), teen_words[digits[0]]); else { strcat_s(value_str,sizeof(value_str), ten_words[digits[1]]); if(digits[0] > 0) { strcat_s(value_str, sizeof(value_str), " "); strcat_s(value_str, sizeof(value_str), unit_words[digits[0]]); } } } else if(digits[0] > 0) strcat_s(value_str, sizeof(value_str), unit_words[digits[0]]); //最终一步到位的输出,程序相当简洁,上面的构思巧妙 printf("\n%s\n", value_str); return 0;}
kk Exercise 6.1 Convert an integer to words
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。