Android实战开发--Day2

  • 输入

在终端写的东西: 123 456\n
转移到缓冲区: “123 456\n”
从左到右 逐个拿

  • 第一个是int a =123 //检测到都是整数
    //不是整数然后中断,输入不是整数的东西
  • 第二个是 char b =‘ ‘
  • 第三个是 int c =456
  • 运算符 / 除 取整数部分 3/2 = 1 余1
    x= 3/2; 此时的x的值为1

  • 问号表达式
    c = x > y ? x:y;

  • 逗号表达式
    result = 表达式1,表达式2,表达式3
    表达式从左到右执行
    然后将表达式3的结果赋到result上


文章目录

  • 1. Demo (计算税后的工资)
  • 2. Demo (数字年龄转化成英文年龄)

1. Demo (计算税后的工资)

  • 计算税后的工资
  • 技术: 使用了 if 语句
#include 

float money = 0;
int main(){
   printf("请输入您的工资:");
   scanf("%f",&money); 
   if(money <= 5000){
   	printf("你的实际工资为 %.1f",money);
   } 	else if (money > 5000 && money <= 8000){
   		money = money - (money - 5000)*0.1;
   		}	else if (money >8000 && money <= 10000){
   			  money = money - (money - 8000)*0.15 - 300;
   			}	else if (money > 10000){
   		    		money = money - (money - 10000)*0.2 - 300 - 300;
   				}
   printf("你的实际工资为 %.1f",money);
   return 0 ;
}

总结

  • 遇到的问题:
    输入5000以下的值会输出两个printf打印的值
    Android实战开发--Day2_第1张图片
    原因是:
    if(money <= 5000){} 中也有一个printf("你的实际工资为 %.1f",money);
    方法:
    1.可以直接删除
    2.或者在这段 if 括号里加个 return 0; 提前结束

2. Demo (数字年龄转化成英文年龄)

  • 数字年龄转化成英文年龄
  • 技术:数组的运用,if语句
#include 

int main(){
	int age = 0;
	printf("请输入年龄: ");
	scanf("%d",&age);
	//保存个位数 
	char* gewei[] = {"","one","two","three","four","five","six","seven","eight","nine"}; //字符串数组记得加"" 
	//保存10-19
	char* temp[] = {"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};
	//保存十位
	char* shiwei[] = {"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};
	
	char* englishage;  //
	if(age < 10){
		englishage = gewei[age];  
	}else if(age >= 10 && age <= 19){ 
		englishage = temp[age % 10];
	}	else if(age >= 20 && age < 100){
			char* sw = shiwei[age/10-2]; // 求十位数
			char* gw = gewei[age%10]; //求个位数
			printf("your age is %s-%s\n",sw,gw);
			
			return 0; //提前结束 
			
	}
	printf("your age is %s\n",englishage); 
	return 0;
}

总结

  • 遇到的问题:
    数组是从0开始,而年龄是从1开始
    所以要来个 ’' 填充数组的第一位,使得数组与年龄同步
  • 很多地方不用定义一个变量来保持数据,直接通过表达式
int s = age/10 - 2
char* sw = shiwei[s]   

直接把s的表达式放到括号里

char* sw = shiwei[age/10-2];
  • char* 是 字符串 数据类型

你可能感兴趣的:(Android实战开发--Day2)