admin管理员组文章数量:1794759
3
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu
字。十个数字对应的拼音如下:
0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
输入格式:
输入在一行中给出一个整数,如:1234
。
提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如yi er san si
。
输入样例:
-600
输出样例:
fu liu ling ling
//一、初用数组
#include <stdio.h>
#include <math.h>
int main (){int n;scanf ("%d",&n);int i = 0,x = 10,wei = 0;int a[100] = {0}; //定义一个容量为100的数组,并赋初始值为0 if (n == 0){printf ("ling");return 0;}else if (n < 0){n = n * -1;x = -1;}for (i = 0; i < 11; ++i){ //++i!
/*1、i++ 返回原来的值,++i 返回加1后的值。2、i++ 不能作为左值,而++i可以。3、i++前者是先赋值,然后再自增;++i后者是先自增,后赋值。 */if ((n >= pow(10,i)) && (n < pow(10,i+1))) //从第一位开始读数 wei = i + 1;}for (i = 1; i <= wei; i++){a [i] = n / pow(10,wei-i); //对数组进行赋值 n = n - a[i] * pow(10,wei-i);}a[0] = x;for (i = 0;i < wei; ++i){switch (a[i]){case -1:printf ("fu ");break;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;case 10:break;}}switch (a[wei]){ //满足题目最后不输出零的条件 case -1:printf ("fu");break;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;case 10:break;}return 0;
}
//不用数组
#include<stdio.h>int main()
{char c;int i=0;while((c=getchar())!='\n'){if(i==0){i++;switch(c){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;default :printf("fu");break;}}else{switch(c){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;default :printf("fu");break;}}}return 0;
}
第一次用数组,实在搞不懂为什么第三章分支结构会牵扯到数组,要不然就要再写一段超长的代码,虽然现在也挺长的,所以这段代码估计再过几天就不能看了(太烂了)
首先 ,定义一个新的数组: int a[100] = {0}; //定义一个容量为100的数组,并赋初始值为0
其次,对数组进行赋值: a [i] = n / pow(10,wei-i);
最后,输出数组内容:switch (a[i])
剩下几个注意点都已经标在代码旁边了
{
数组类型说明 在C语言中使用数组必须先进行类型说明。
数组说明的一般形式为:类型说明符 数组名 [常量表达式],……; 其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。
数组就是一次性定义相同数据类型的一组变量数组定义。
举例
说明整型数组a,有10个元素。若要表示第10个元素,则使用a[9]。第一个则是a[0]。
1 |
|
说明实型数组b,有10个元素,实型数组c,有20个元素。
1 |
|
说明字符数组ch,有20个元素。
1 |
|
特点
1.数组是相同数据类型的元素的集合。
2.数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
对于VB的数组,表示数组元素时应注意:
1下标要紧跟在数组名后,而且用圆括号括起来(不能用其他括号)。
2下标可以是常量,变量,或表达式,但其值必须是整数(如果是小数将四舍五入为整数)。
3下标必须为一段连续的整数,其最小值成为下界,其最大值成为上界。不加说明时下界值默认为1。
}——摘自百度百科
本文标签: 3
版权声明:本文标题:3 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1692524516a142666.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论