#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//寻找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;
}*/