D6逻辑运算符

来源:互联网 发布:ubuntu apache2 https 编辑:程序博客网 时间:2024/04/29 07:00
一,逻辑运算符:


1,逻辑与 "&&" ,读作: "and" -- 暗的. (客串: "&" 是取地址符) 
  通俗解释:两个条件必须满足.
  比如:单涛的丈母娘说你想娶我女儿,必须有房且有车: 有房 && 有车;  
  
2,逻辑或 "||" ,读作: "or" -- 卧.
  通俗解释:两个条件满足其一就可以.
  比如:单涛的丈母娘说你想娶我女儿,要么得有房要么得有车: 有房 || 有车;
 
3,逻辑非 "!", 读作:"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:    表达式1 || 表达式2  当表达式1为真时


以上两种情况下,表达式2的值都不会被计算,可以理解为字节忽略.
例如:
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




------------------------------------------------------------------------


二:条件运算符:    
"表达式1 ? 表达式2 : 表达式3",  三目运算符;
如果表达式1的值为真,则整个条件表达式的值为表达式2的值,否则为表达式3的值.


int a = (3 > 5) ? 10 : 20;
printf("a = %d",a);


-----------------------------------------------------------------------
三:输入输出函数: 
printf()  scanf()  getchar()  putchar()
需要引用的头文件是stdio.h




   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(),输出单个字符

格式控制符扩充 % + :
%-  右对齐(默认是右对齐)
%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
 


%g —— 选用输出宽度较小的格式输出实数
     根据数值的大小,自动选择用f格式+或e格式输出
 实数。输出时选择占宽度较小的一种,且不输出
 无意义的零。
 

    puts()    输出字符串
putchar()  输出字符  
转义字符可以作为字符串的一部分输出,会正常发挥作用,但格式空字符无效.

原创粉丝点击