题目
二维数组的知识
//初始化
1.char c[3][8]={{"apple"},{"orange"},{"banana"}};
等价于:
2.char c[3][8]={"apple","orange","banana"};
//引用
char c[][10]={"apple","orange","banana"};
1.printf ("%c",c[1][4]); //输出1行4列元素'g'字符
2.scanf ("%c",&c[2][3]); //输入一个字符到2行3列元素中
3.c[2][0]='B'; //把字符赋值给2行0列元素
4.printf ("%s",c[1]); //c[1]为第2行的数组名(首元素地址),输出 orange
5.scanf ("%s",c[2]); //输入字符串到c[2]行,从c[2]行的首地址开始存放
解题思路
1.刚看到这道题的时候就觉得挺简单的,就想到用二维数组来存放拼音,起初想把负号也存进去,但影响不大,关键是行末的空格怎样才能不打出来
关键;不管第一个字符是符号还是整数,可以先把第一个字符打出来,然后再用 空格字符串的形式将字符串打印出来
源码
#include<stdio.h>
#include<string.h>
int main()
{
char a[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
char str[100];
scanf("%s",str);
int m,i,n;
m=strlen(str);
//判断第一个字符
if(str[0]>='0'&&str[0]<='9')
{
n=str[0]-'0';
printf("%s",a[n]);
}
else
printf("fu");
for(i=1;i<m;i++)
{
n=str[i]-'0';
printf(" %s",a[n]);
}
}