运算符和输出函数

一.逻辑运算符; 1代表’真’ 0代表’假’
&& 与 两个条件都需要满足 1&&1 1; 1 && 0 0; &(地址符) 读 and
|| 或 满足其中一个条件 1 || 0 1; 0 || 0 0; or
! 非 与条件相反 如:1 0; 0 1; not
x,y中至少有一个小于0;
x<0 && y>=0 || x>=0 && y<0 || x<0 && y<0
x < 0 || y < 0;
“&&” “||”均具有短路求值的特点:
情况1: 表达式1 && 表达式2 当表达式1为假时 ,表达式2的值都不会被计算(可以理解为字节忽略.)
情况2: 表达式1 || 表达式2 当表达式1为真时 继续运算。
例子:
int a = 2, b = 3, c;
c = !a && b++;
printf(“b = %d,c = %d”, b, c); //b = 3,c = 0
c = a || b++;
printf(“\nb = %d,c = %d”, b, c); //b = 3,c = 1
c = !a || b++;
printf(“\nb = %d,c = %d”, b, c); //b = 4,c = 1
c = a && b++;
printf(“\nb = %d,c = %d”, b, c); //b = 5,c = 1
运算符补充:
按位 与 : & (00得0,10得0,01得0,11得1)
7&8 = 0
7 00000111
&
8 00001000
00000000

按位 或 : | (00得0,10得1,01得1,11得1)
7|8 = 15
7 00000111
|
8 00001000
00001111

按位 异或 : ^ (00得0,10得1,01得1,11得0)
7^8 = 15
7 00000111
^
8 00001000
00001111
常用于交换两个变量的值,如:
int a = 10, b = 20;
a = a^b;
b = a^b;
a = a^b;
printf(“a = %d,b = %d”, a, b); //a = 20,b = 10

取反: ~ (1得0,0得1)
~7 = -8 7 = 00000111 ~= 11111000(补) = 11110111(反) = 10001000(原) = -8;

右移: >> (往右移动,高位补0)
7 >> 2 = 00000111 >> 2 = 00000001 = 1

左移: << (往左移动,低位补0)
7 << 2 = 00000111 << 2 = 00011100 = 28

二.条件运算符
1.三目运算符 (2>1) ? 12:13 ; (2>1)是1 取12 (2<1)是0 1取 13
int a = (3 > 5) ? 10 : 20;
printf(“a = %d”,a);
“表达式1 ? 表达式2 : 表达式3”, 三目运算符;
如果表达式1的值为真,则整个条件表达式的值为表达式2的值,否则为表达式3的值.

三.输入输出函数:
1.printf()打印 getchar()请求终端输入字符 puts()输出字符串 putchar()输出单个字符 scanf()一个与输出界面过度的输入面板
需要引入的头文件stdio.h 与 #define _CRT_SECURE_NO_WARNINGS
int a = 0;
scanf(“%d”,&a); //a = 我们输入的数字
getchar();

int a = 0,b,c;
printf(“请输入我的财产:\t”);
scanf(“%d%d%d”, &a,&b,&c); //此时每个数字输完我们用回车间隔;
//scanf(“%d,%d,%d”, &a, &b, &c); //此时每个数字输完我们用逗号间隔,全部输完才按回车;
//scanf(“%d %d %d”, &a, &b, &c); //此时每个数字输完我们用逗空格间隔,全部输完才按回车;

输入矩形长宽求面积!
输入圆形半径求面积!
输入三个学生成绩求平均成绩!

/*int r;
printf(“请输入一位正整数作为圆形的半径:\t”);
scanf(“%d”, &r);
getchar();
printf(“\n圆形的面积是:\t%0.2f”, Pai*r*r);*/

/*int w, h;
printf(“请输入两个正整数,分别表示矩形的长宽,用逗号间隔:\t”);
scanf(“%d,%d”, &w, &h);
getchar();
printf(“\n矩形的面积为:\t%d”,w*h);*/

int s1,s2,s3;
printf(“请输入三个正整数,分别表示三名学生的成绩,用逗号间隔:\t”);
scanf(“%d,%d,%d”, &s1, &s2,&s3);
getchar();
printf(“\n三名学生的平均成绩为:\t%0.2f”, (s1+s2+s3)/3.0f);*/

    getchar(),请求终端输入字符;

putchar(),输出单个字符

    格式控制符扩充: %hd   %d  %ld  %c  %u %f   %-    %0  %m  %.n   %s  %o %x %e  %g

格式控制符扩充 % + :
%- 左对齐(默认是右对齐)
%0 输出的空位用0补充
%m 表示字宽

如int a = 5 printf(“%06d”,a); //000005
printf(“%-6d”,a); //5
printf(“%-06d”,a); //5 (只有在右对齐且存在空位时才补0)
%.n 对实数,表示输出n位小数;对字符串,表示截取的字符个数。

%s 表示输出字符串
如: printf(“%s”,”shantao”); //”shantao”
printf(“%10s”,”shantao”); //” shantao”
printf(“%-10s”,”shantao”); //”shantao ”
printf(“%-010s”,”shantao”); //”shantao ”
printf(“%010s”,”shantao”); //”000shantao”
printf(“%010.5s”,”shantao”); //”00000shant”
printf(“%-010.5s”,”shantao”); //”shant “

%l 输出长整形
%d —— 以带符号的十进制形式输出整数
%o —— 以无符号的八进制形式输出整数
%x —— 以无符号的十六进制形式输出整数
如:int a = 1024;
printf(“十进制 = %d,八进制 = %o,十六进制 = %x”, a, a, a);
//打印结果: 十进制 = 1024,八进制 = 2000,十六进制 = 400

%u —— 以无符号的十进制形式输出整数
如:int a = -1;
printf(“%u”,a); //4294967295

%c —— 以字符形式输出单个字符
%f —— 以小数点形式输出单、双精度实数

%e —— 以标准指数形式输出单、双精度实数
输出数据共占13位,其中整数部分为1位非
零数字,小数点占1位,小数部分为6位,
指数部分e占1位,指数符号占1位,指数为
3位。若输出数据为负数,还应增加一位整
数部分的符号位。
如:float a = 12345677;
printf(“%e”, a); //1.234568e+007
a = -12345677;
printf(“%e”, a); //-1.234568e+007

int a = 123456789
%g —— 选用输出宽度较小的格式输出实数(只占7位多余的自动删除) 如e 格式 1.23456e + 002
根据数值的大小,自动选择用f格式或e格式输出
实数。输出时选择占宽度较小的一种,且不输出
无意义的零。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值