第2章 数据类型与操作符
- 使用
#define
比const
的好处是常量不占用内存 -
volatitle
表示该变量值在任意时刻可能被外部进程更改 -
++
前置和後置的区别是加1操作执行的时机 - 可以用
<=
、>=
这种关系运算符 - c语言内部,用0表示false,其他任何值都会被当作true来处理
- 十进制转二进制:
对应正数二进制 -> 取反 -> +1
- 异或操作真值表
x | y | x^y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
以上同时演示了左对齐、右对齐、居中对齐三种方式
- 左移操作符
<<
直接丢掉左边,右边补零;右移操作符>>
丢掉右边,如果是负数左边还是保持符号位为1
第三章 c语言中的控制语句
- 求二次方程的根
#include<stdio.h>
#include<math.h>
/*
d=b^2-4ac;
1.d>0
x1=(-b+sqrt(d))/2a; x2=(-b-sqrt(d))/2a;
2.d=0;
x1=x2=-b/2a;
3.d<0;
根为r+r1j和r-r1j
r=-b/2a; r1=sqrt(d)/2a;
*/
int main()
{
int a,b, c;
double x1, x2, r, r1;
long d;
printf("input a b c:");
scanf_s("%d %d %d", &a, &b, &c);
//计算判别式
d = b * b - 4 * a * c;
if (d > 0)
{
printf("roots are unequal and real\n");
int k=a*2;
x1 = (-b + sqrt(d)) / (k);
x2 = (-b - sqrt(d)) / (k);
printf("root1 = %.2f, root2 = %.2f\n", x1,x2);
}
else if (d == 0)
{
printf("roots are equal and real\n");
x1 = (-b) / (a * 2);
printf("root1 = %.2f\n", x1);
}
else
{
printf("roots are complex\n");
d = -d;
r = -b / (2*a);
int k=a*2;
r1 = sqrt(d) / (k);
printf("root1 = %.2f+%.2fi, root2 = %.2f-%.2fi\n", r, r1, r, r1);
}
return 0;
}
- 计算一个整数中各位数字之和
#include<stdio.h>
#include<math.h>
/*
用%10取最後一位数字,用/移除最后一位数字
*/
int main()
{
int num, digit, sum = 0;
printf("input a num:");
scanf_s("%d", &num);
do
{
digit = num % 10;
sum += digit;
num /= 10;
} while (num > 0);
printf("sum of digits = %d\n", sum);
return 0;
}
- while循环比do-while循环更高效?不能这么说吧?
- 斐波那契数列
#include<stdio.h>
#include<math.h>
/*
生成斐波那契数列
*/
int main()
{
int i, n, cnt;
long unsigned int f1, f2, f;
printf("how many Fibonaccis you want: ");
scanf_s("%d", &n);
/*
斐波那契数列的前两项是0和1
*/
f1 = 0;
f2 = 1;
if (n == 1)printf("%lu\n", f1);
else
{
if (n == 2)
{
printf("%lu\t%lu\n", f1, f2);
}
else
{
cnt = 2;
printf("%lu\t%lu\t", f1, f2);
for (i = 3; i <= n; i++)
{
f = f1 + f2;
printf("%d", f);
cnt++;
if (cnt % 5 != 0)
{
printf("\t");
}
else
{
printf("\n");
}
f1 = f2;
f2 = f;
}
}
}
return 0;
}
- switch变量只能用整型或者字符类型
- exit(0)代表程序正常终止,exit(1)代表程序非正常终止
- break直接跳出当前代码块,而continue终止当前循环,回到下一个循环开始
网友评论