C语言进阶
- 0-100素数
- 最大公因数
素数
定义:素数只能被1和他本身整除
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
for(i=0;i<=200;i++)
{
for(j=2;j<=i;j++)//素数只能被1和他自身整除
{
if(i%j==0)
break;
}
if(i==j)
{
printf("%d",i)
}
}
}
最大公因数
定义如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。
int main()
{
int a = 0;
int b=0;
scanf("%d%d", &a, &b);
int i = 0;
for (i = b; i>0; i--)
{
if (a%i == 0 && b%i == 0)
{
printf("%d\n", i);
break;
}
}
return 0;
}
循环与分支
- 分支
int a = 0;
int b = 0;
if(a>b)
{
printf("%d",a)
}
else
printf("%d",b);
这就是一条简单的分支,你也可以写更多的分支,
else if 就可以继续添加判断条件
大致就是判断,判断条件少的时候用if当判断条件多的时候用switch(switch的判断条件要是整数,字符也可以,不可以是浮点数),如果语句多条一致可以不写语句项,最后写完判断记得break,方便下次添加条件
这个例子,
int main()
{
int input = 0;
scanf("%d", input);
switch (input)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("休息日");
break;
}
}
循环 如果你要一件事多次执行(复读机)
例子
while(1)
{
printf("好好学习");
}
没错这样就好是个循环语句,不过是死循环,wille和if一样需要条件,我这里给的条件是1是一直真,只需要给他一个判断他就可以停下来!!
- 在循环中还有俩关键字
break和contiue
列
int i =0 ;
while(i<5)
{
if(i==4)
brak;
printf("好好学习");
i++
}
这个意思就是i==4就直接永久终止循环
列2
int i =0 ;
while(i<5)
{
if(i=4)
continue;
printf("好好学习");
i++
}
这里就是i==4contiue就不执行后面代码,i一直等于4导致死循环,所以与了新的选手for
for
int i -0 ;
for(i = 0;i<5,i++)
{
printf("好好学习");
}
这样也可以达到while的效果,break的效果也和while一样,那么contiue呢
int i -0 ;
for(i = 0;i<5,i++)
{
if(i=4)
contiue;
printf("好好学习");
}
这里也会死循环吗??
答案不是,因为for循环为了控制变量采用前闭后开的写法,所以不会