C++简单计算问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 18:34:16
#include "iostream.h"
int main()
{
int a;
cout <<"请输出一个数: ";
cin >>a;
if (a<0) cout <<a <<"是个负数。" <<endl;
else cout <<a <<"是个正数。" <<endl;
if (a%2) cout <<a <<"是个奇数。" <<endl;
else cout <<a <<"是个偶数。" <<endl;
cout <<a <<"个位上的数是" <<(a>0?a%10:-a%10) <<endl;
return 0;
}

cout <<a <<"个位上的数是" <<(a>0?a%10:-a%10) <<endl;
这里谁帮忙解释下?

就是输出个位上的数,若是正数,直接求余,若是负数,转换成正数再求余

(a>0?a%10:-a%10)
等价于
if(a>0) 运行a%10 得到正数的个位数
否则 运行-a%10 得到负数的个位数

----------------
a%10
含义a除10 的余数
例如 4%2=0 5%2=1

(a>0?a%10:-a%10) 这是一个条件运算符
如果a>0成立 那么这个表达式的值就是a%10
如果a>0不成立 那么这表达式的值就是-a%10

更多质料可以参见:http://www.cfans8.cn/default.asp?cateID=5

a大于0时,让a余除10,就得到个位数了,a小于0时,-a余除10也可以得到个位数
条件?输出1:输出2;
就是,如果条件成立,输出1,不成立,输出2

问号前面是条件,后面是执行语句。满足条件,就执行冒号前面的语句,不满足,就执行冒号后面的语句

?:
c语言中的三目计算符

a?b:c
翻译成
if(a)
执行b
else
执行c