#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
/*int main()
{
int age = 20;
if (age < 18)
printf("未成年\n");
else
printf("成年\n");
return 0;
}
最基础
*/
/*int main()
{
int age = 100;
if (age < 18)
printf("未成年\n");
else if (age >= 18 && age <= 45)
printf("壮年\n");
else if (age > 45 && age < 90)
printf("老年\n");
else
printf("老不死\n");
return 0;
}*/
/*int main()
{
int age = 10;
if (18 < age < 45)
printf("壮年\n");
return 0;
}
输出结果为壮年 因为18大于10 为假 那么就是0<45 结果又为真所以输出壮年。
如果int age = 20; 18<20为真 变成1<45 结果又为真所以输出壮年。*/
/*int main()
{
int age = 10;
if (age < 18)
{
printf("未成年\n");
printf("不能谈恋爱\n");
} 在使用if else中如果要执行多条语句那么要加大括号{}否则程序有错。
else if (age >= 18 && age <= 45)
printf("壮年\n");
else if (age > 45 && age < 90)
printf("老年\n");
else
printf("老不死\n");
return 0;
}*/
/*int main()
{
int a = 0, b = 2;
if (a == 1) 注意为== (==表示判断是否相等) (=为赋值)
if (b == 2)
printf("HAHA\n");
else else 与最近的if使用
printf("HEHE\n");
return 0;
}
a等于1 在进入b是否等于2。如果a不等于1那么就不进入下一个if的语句判断,并且因为else是跟着下一个if的所以什么都不输出,直接结束。
如果第一个if为真进入下一个再次判断。
*/
/*int main()
{
int x, y, min;
printf("请输入x和y:");
scanf_s("%d%d", & x, &y);
printf("x = % d, y = % d\n", x, y);
min = x;
if (min > y)
min = y;
printf("最小值为:%d\n", min);
return 0;
}
输入两个输并且输出较小的那个
*/
/*int main()
{
int year;
printf("请输入年份:");
scanf_s("%d", &year);
if (year % 4 == 0 && year % 100 != 0)//==需要注意
printf("今年是闰年\n");
else
printf("今年不是闰年\n");
return 0;
}*/
/*int main()
{
int y, x,a;
scanf("%d", &a);
x = a;
y = -1;
if (x != 0)
if (x > 0)
y = 1;
else y = 0;//else 跟着上面的if
printf("y=%d\n", y);
return 0;
}*/
/*int main()
{
int a;
scanf("%d", &a);
if (a != 0)
printf("a!=0\n");
else
printf("a==0\n");
return 0;
}*/
/*void main()
{
int score;
printf("输入成绩score:\n");
scanf("%d", &score);
if (score > 100 || score < 0)
printf("数据错误!\n");
else if (score >= 90) printf("等级为A\n");
else if (score >= 80) printf("等级为B\n");
else if (score >= 70) printf("等级为C\n");
else if (score >= 60) printf("等级为D\n");
else printf("等级为E");
}*/
/*void main()
{
int score;
printf("输入成绩score:\n");
scanf("%d", &score);
if (score > 100 || score < 0)
printf("数据错误!\n");
else
{
switch (score / 10)
{
case 10: //没有break 进入下一条
case 9:printf("A\n"); break; //有break 跳出
case 8:printf("B\n"); break;
case 7:printf("C\n"); break;
case 6:printf("D\n"); break;
default:printf("E\n"); //swith语句中也可以没有default
}
}
}*/
//输入3个整数放入a,b,c中然后把数据从小到大放入a,b,c并输出;
/*void main()
{
int a, b, c,t;
printf("inputa,b,c:\n");
scanf("%d%d%d", &a, &b, &c);
if (a > b)
t = a, a = b, b = a;//比较ab的大小 小的给a并且互换值
if (a > c)
t = a, a = c, c = t;//比较ac的大小 小的给a并且互换值
if (b > c)
t = b, b = c, c = t;
printf("%d %d %d", a, b, c);
}*/
/*void main()
{
int x, y;
printf("请输入x:\n");
scanf("%d", &x);
if (x < 1)
{
y = x;
printf("x=%3d,y=x=%d\n", x, y); //x<1 y=x
}//执行多条语句用代码块 //x<10 y=2x-1
else if (x < 10) //else y=3x-11
{
y = 2 * x - 1;
printf("x=%3d,y=2*x-1=%d", x, y);
}
else
{
y = 3 * x - 11;
printf("x=%3d,y=3*x-11=%d",x,y);
}
}*/
//abc 中最大者赋值给max
/*void main()
{
int a, b, c;
int max;
scanf("%d%d%d", &a, &b, &c);
{
if (a > b && a > c)
max = a;
else if (b > c)//a是最小的
max = b;
else //a最小 并且b小于c
max = c;
}
printf("最大值是:%d\n", max);
}*/
/*void main()
{
int a, b, c;
int max;
scanf("%d%d%d", &a, &b, &c);
if (a > b)
if (a > c)
max = a;
else//a>b ,a<c
max = c;
else//对应第一个if a<c
if (b > c)
max = b;
else//对应上一个if(238行)a<c b<c
max = c;
}*/
//寻找1到100之间的奇数
/*int main()
{
int i = 1;
while(i <= 100)
{
if (i % 2 == 1)
printf("%d\n", i);
i++;
}
return 0;
}*/
/*int main()
{
int i = 0;
while (i < 10)//whlie 循环必须有大括号 i从0开始一直到9 9-0+1一共10次
{
printf("*");
i++;
}
printf("\n");
return 0;
}*/
//求1+3+5+7+..+n 直到n<1000 输出他们的和
/*int main()
{
int i, sum;
i = 1;
sum = 0;
while (i < 1000)// 和if一样 都没有;
{
sum += i;
i = i + 2;
}
printf("sum=%d", sum);
}*/
/* do-while 语句
* do
* 循环体
* while(表达式);
* do-whlie 语句至少执行1次 再看while表达式里面的逻辑值 也可能会无限循环下去
*而while 语句可能1次也不执行
*/
//Fibonacci数列 1 1 2 3 5 8 13 21...
// f1=1
// f2=1
// fn=f(n-1)+f(n-2)
/*int main()
{
int f1, f2, f3, m;
f1 = 1, f2 = 1;
m = 2;
do
{
f3 = f1 + f2; m++;
f1 = f2;
f2 = f3;
}
while (f3 < 500);
printf("再第%d个月的兔子的数量达到%d只\n", m, f3);
return 0;
}*/
//for 语句
/*int main()
{
int i;
for (i = 0; i < 10; i++)//不需要大括号 之间用;隔开
printf("*");
printf("\n");
return 0;
}*/
// for 语句可以表达式省略,但是两个;不能省略
//如for( ; ;)printf("*"); 虽然省略 但是表达式的值永远为真所以会无限循环
//for后一对圆括号的表达式可以是任意有效的c语言表达式)
//例如(sum=0,i=1;i<100;sum+=i,i++;) 此时表达式1和表达式3的值都为逗号表达式
//由键盘输入一个正整数m,判断是否为素数
//对于i(2- m-1) m%i!=0 则可以判断是否为素数 i的取值范围可以缩小到2到根号下m来减少循环次数
//#include<math.h>//sqrt函数在这个头文件里
/*int main()
{
int i, m,k;
printf("请输入一个正整数m:");
scanf("%d",& m);
k = sqrt(m);//根号下m
for (i = 2; i <= k; i++)//i从2刀根号下m逐渐增加
if (m % i == 0) break;//如果有约数,就会跳出循环 此时i肯定大于等于k
if (i > k)
printf("%d是一个素数\n", m);
else
printf("%d不是一个素数\n", m);
return 0;
}*/
//continue语句的作用是跳过本次循环体中余下未执行的语句,立即执行下一次的循环条件判定
/*int main()
{
int i, sum = 0;
for (i = 1; i < 10; i++)
{
if (i % 2 == 0) continue;//if里得为真的话 跳过本次循环剩下的语句 重新进行循环条件的判断 可以看出这里直接把偶数去掉 把奇数留下
sum += i;
}
printf("sum=%d\n", sum);
return 0;//可以看出是求1到10中所有素数的和
}*/
// * 0 空格:3-0 *号:2*0+1
// *** 1 3-1 2*1+1
// ***** 2 3-2 2*2+1
//******* 3 3-3 2*3+1
//输出这样的图形 使用循环的嵌套
/*int main()
{
int i, j, k;
for (i = 0; i < 4; i++)//控制行数4
{
for (j = 0; j < 3 - i; j++)
printf(" "); //输出空格
for (k = 0; k < 2 * i + 1; k++)
printf("*"); //输出*
printf("\n");//换行
}
}*/
/*
有这样的一个数列: +2 -3 +5 -8 +13
—— —— —— —— ——
1 2 3 5 8 求这样数列的前20项之和
观察发现 为一正一负 分母是上一个数的分子 分子还保持是上一个数分子分母之和这样的关系
*/
/*int main()
{
int m, fuhao=1;//m用来控制前20个数的个数用于循环中 符号一开始为正1
double fz = 2, fm = 1, sum = 0;
for (m = 0; m < 20; m++)
{
sum = sum + fuhao * fz / fm;
fz = fm + fz; //分子还保持是上一个数分子分母之和这样的关系
fm = fz - fm;// fm+fz-fm=fz 这里的fz实际上就是上一个数的分母;
fuhao = -fuhao;
}
printf("数列前20项之和为:%.2lf", sum);//.2lf 小数点保留后两位
return 0;
}*/
/*void main()
{
int x;
printf("please input the x value:");
scanf("%d", &x);
switch (x / 10)
{
case 6:
case 7:printf("PASS\n"); break;
case 8:printf("GOOD\n"); break;
case 9:
case 10:printf("VERY GOOD"); break;
default:printf("FAIL\n");
}
}*/
//输入95结果为VERY GOOD
//输入87结果为DOOD
//输入100结果为VERY GOOD
//输入43结果为FAIL
//输入66结果为PASS
//输入79结果为PASS