黑马程序员技术交流社区
标题: C语言学习中容易忽略的一些问题 [打印本页]
作者: 王鹏 时间: 2015-6-18 23:03
标题: C语言学习中容易忽略的一些问题
//
// main.c
// C_Test
//
// Created by wangpeng on 15/6/16.
// Copyright (c) 2015年 wangpeng. All rights reserved.
//
#include <stdio.h>
int main(int argc, const char * argv[]) {
void test6();
test6();
printf("program end!");
return 0;
}
/*
数据类型强制转换时的精度问题:
*/
void test1(){
float f1 = 12.3f;
float f2 = 78.9f;
printf("f1 = %d\n",(int)f1);//结果:f1 = 12
printf("f2 = %d\n",(int)f2);//结果:f2 = 78
//没有四舍五入,而是只取整数部分
}
/*
printf和scanf截取有效数字时的精度问题:
*/
void test2(){
float f1 = 3.1415926f;
printf("f1 = %.2f\n",f1);//结果:f1 = 3.14
printf("f1 = %.3f\n",f1);//结果:f1 = 3.142
//有四舍五入
}
/*
算术运算符/符合赋值运算符/自增自减运算符的优先级问题:
*/
void test3(){
int i = 5, j = 5, p, q;
// p=i+++i+++i++;
// q=j+++j+++j++;
printf("p = %d,q = %d,i = %d,j = %d\n",p,q,i,j);
int a = 5, b = 5, result;
result = a += b;
printf("result = %d,a = %d, b = %d\n",result,a,b);
}
/*
i++和++i的问题
*/
void test4(){
int i = 3,j = 3,result1 = 0,result2 = 0;
result1 = i++;
printf("i = %d,i++ = %d\n",i,result1);//result1 = 3
result2 = ++j;
printf("j = %d,++j = %d\n",j,result2);//result2 = 4
}
/*
真假问题,值得注意的是负数以及非零整数取反的问题
*/
void test5(){
int a = 1,b = 2,c = 3,d = 4;
printf("c = %d\n",c);
c = a > b;
printf("c = %d\n",c);
printf("d = %d\n",d);
printf("!d = %d\n",!d);
printf("!55 = %d\n",!55);
printf("!!55 = %d\n",!!55);
int result = -1;
result = a>a+b<c+d;
printf("result = %d\n",result);
int x = -2,y = -1,z;
z = x&&y;
printf("z = %d,!x = %d,!y = %d\n",z,!x,!y);
}
/*
if-else计算器,可以换成switch语句,也可直接换成输入数学式子,具体代码自行实现,很简单的,这里就不一一展示了
*/
void test6(){
int a,b;
char op;
float c = 0.0f;
printf("输入第一个数字:\n");
scanf("%d",&a);
printf("输入一个符号:\n");
scanf("%c%c",&op,&op);
printf("输入第二个数字:\n");
scanf("%d",&b);
if (op=='+') {
printf("%c\n",op);
c=a+b;
} else if(op=='-'){
printf("%c\n",op);
c=a-b;
}else if (op=='*'){
printf("%c\n",op);
c=a*b;
}else if (op=='/'){
printf("%c\n",op);
c=a/b;
}else{
printf("%c not a op\n",op);
}
printf("%d %c %d = %.2f\n",a,op,b,c);
}
作者: cxl19900517 时间: 2015-6-19 08:40
有用,谢谢总结
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |