数组练习demo 按照年龄对应的英语进行输出

demo实验要求:

设计一个程序,使得输入一个数字可以转化为对应的英语
提示:【数组】
效果为:
(输入年龄) 20
your age is twenty

思考:

a.各段对应的英语单词是?

1-10 one two three four five six seven night nine ten
11-19 eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen
20 twenty
21 twenty one
31 thrity one
以此类推···

b.

以上的英语单词是字符串,可以使用数组的知识分为个位,十位,与11-19的特殊部分共计三段

c.

可以使用数组和判断语句,让指针在经过算法后可以输出个位、十位、11-19等各段数组对应的字符串

个人的解决方案


#include <stdio.h>

int main(){

int age=0; 
int temp=0; //初始化 防止缓冲区的影响
char *eng; //eng的指针在各个数组中调用我对应的英语单词

//保存个位数 1-9    / “ "为无内容字符串(可能刚好为整十,不需要个位数)/
char*gewei[]={" ","one","two","three","four","five","six","seven","eight","nine"} ;
//保存10到19
char*temp[]={"ten","eleven","thirteen","fourteen","sixteen","seventeen","eighteen","nineteen"} ;
//保存十位
char*shiwei[]={"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};

printf("请输入年龄:"); //提示操作
scanf("%d",&age); //获取age的值
    

    if(age<10){
        //直接访问个位数组
        //age从1开始 索引值从0开始
        //必须-1才能匹配 
    eng=gewei[age-1];//数组从0开始需要age为0才能输出第一个字符串 
    printf("your age is %s",eng);
    }

      else if(age>=10&&age<=19){ // 10-19的数组
      int index=age%10;
    eng=temp[index]; 
      printf("your age is %s",eng);
      }

  else{
  int g=age%10;  //定义并且获取个位数(除十然后取余)
  char*gEng
  gEng=gewei[g-1];  

  int s=age/10;//定义并且获取十位数 
  char*sEng=shiwei[s-2];   ///十位-2才能匹配 (从二十开始)

printf("your aeg is %s-%s",sEng,gEng) ;//(效果如:twenty-nine) 
} 
return 0;
}

注意事项:

a.

为保证用户体验 不要再scanf();乱输入内容 否则必须为为printf();中输入%d的特定格式
例子:
scanf("%d %d\n",&num1,&num2);
若为%d%d 需要一个一个敲 再两次 enter
printf("%d,%d\n",num1,num2); //\n是格式 输入为: 1 2\n 才可

b.

注意书写格式,方便检查错误(不然后面修bug要累哭)

  1. if(){
    }
  2. 各个步并且骤即时注释,并且每一段功能记得间隔开。
    3.多个判断语句记得交错开,不要从上往下一条线。
    4.多层逻辑记得越里层逻辑越靠后 多敲几次TAB
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容