求最大公约数(辗转相除法)
#include <stdio.h>
int main(){
int a = 0, b = 0, c = 0;
scanf("%d%d", &a, &b);
while(c = a % b) //判断余数是否为0;
{
a = b; //除数变为被除数;
b = c; //余数变为除数;
}
printf("%d\n", b); //余数为0时,式子中的除数即为最大公约数;
return 0;
打印1000到2000之间的闰年
#include <stdio.h>
int main()
{
int year = 0;
//for(语句1;表达式;语句2),先执行(仅1次)语句1,
//判断表达式,成立则进入循环,而后执行语句2;
for(year=1000; year<=2000; year++)
{
//判断闰年:整除4和400且不整除100;
//&&:逻辑与;有假为假,全真为真;
//||:逻辑或;有真为真,全假为假;
if(((year%4==0)&&(year%100!=0))||(year%400==0))
{
printf("%d\n", year);
}
}
return 0;
}
3.打印100到200之间的素数;
#include<stdio.h>
int main()
{
int i=0;
int count=0;
for(i=1;i<=10;i++) //100-200的数,遍历每一个数字
{
int j=0;
for(j=2;j<=i;j++) //判断是否是素数
{
if(i%j==0) //遇到整除即不是素数;跳出循环有两种情况:素数和非素数;
{
break;
}
}
if(i==j) //检查跳出循环的是不是素数;
{
count++;
printf("%d ",i);
}
}
printf("\ncount=%d\n",count);
return 0;
}
#include <stdio.h>
int main()
{
int i = 0;
int count = 0;
for(i=100;i<200;i++)
{
int j = 0;
for(j=2;j<1;j++)
{
if(i%j==0)
{
break;
}
if(i==j)
{
count++;
printf("%d ",i);
}
}
}
printf("\ncount=%d\n",count);
return 0;
}
//本代码是无效的,因为break是终止整个循环,不管是不是素数都得不到;
// if(i==j)这个判断应该在第2个for循环外面;
将三个整数按从大到小输出;
#include <stdio.h>
int main()
{
int a = 0, b = 0, c = 0;
scanf("%d%d%d", &a, &b, &c);
if(a < b)
{
int tmp = a;
a = b;
b = tmp;
}
if(a < c)
{
int tmp = a;
a = c;
c = tmp;
}
if(b < c)
{
int tmp = b;
b = c;
c = tmp;
}
return 0;
}
打印1-100之间所有3的倍数的数;
#include <stdio.h>
int main()
{
int i = 0;
for(i = 1; i < 101; i++)
{
if(i%3==0)
{
printf("%d ", i);
}
}
return 0;
}