分支与循环(4)
10 三个数从大到小输出
int a=0,b=0,c=0;//最后做到a放最大值,b放中间值,c放最小值
scanf("%d%d%d",&a,&b,&c);
if(a<b)
{
int tmp=a;
a=b;
b=tmp;
}
if(a<c)
{
int tmp2=a;
a=c;
c=tmp2;
}
if(b<c)
{
int tmp3=b;
b=c;
c=tmp3;
}
printf("%d %d %d\n",a,b,c);
11求两数最大公约数 辗转相除法
int m=18,n=24;
int r=0;
scanf("%d%d",&m,&n);
while(r=m%n)
{
m=n;
n=r;
}
printf("%d\n",n);
12求闰年
int year;
for(year=1000;year<=2000;year++)
{
//判断year是否为闰年
//1.能被4整除并且不能被100整除是闰年
//2.能被400整除是闰年
if(year%4 ==0 && year%100 !=0)
{
printf("%d",year);
}
else if(year%400==0)
{
printf("%d",year);
}
}
13 判断素数
#include<math.h>
int i=0,j=0;
int count=0;
for(i=2;i<100;i++)
{
int j=0;
for(j=2;j<=sqrt(i);j++)//除2以外,可以直接从奇数里面找素数
{
if(i%j==0)
{
break;
}
}
if(j>sqrt(i))
{
printf("%d ",i);
count++;
}
}
printf("\n");
printf("%d\n",count);
14计算 1/1-1/2+1/3-1/4+1/5....
int i=0;
double sum=0.0;
int flag=1;
for(i=1;i<=100;i++)
{
sum+=flag*(1.0/i);
flag=-flag;
}
printf("%lf\n",sum);
%2d保留两位并向右对齐 %-2d保留两位并左对齐
//15 做一个猜数字小游戏
#include <stdio.h>
#include <stdlib.h>
void game()
{
//生成一个1-100随机数
int ret=0;
int guess =0;//接收玩家猜的数字
//拿时间戳来设置随机数的生成起始点
ret=rand()%100+1;//生成一个1-100随机数
while(1)
{
printf("请猜数字:>");
scanf("%d",&guess);
if(guess>ret)
{
printf("猜大啦");
}
else if(guess<ret)
{
printf("猜小啦");
}
else
{
printf("猜对啦");
break;
}
}
}
void menu()
{
printf("************************\n");
printf("******输入1进入游戏*****\n");
printf("******输入0退出游戏*****\n");
printf("************************\n");
}
int main()
{
int input =0;
srand((unsigned int)time(NULL));//生成一随机数
do
{
menu();//游戏开始
printf("请选择>:");
scanf("%d",&input);
switch(input)
{
case 1:
printf("请猜1—100的数字\n");
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("既不玩游戏也不退出干啥呢\n");
break;
}
} while(input);
return 0;
}
goto 用于跳出深层嵌套,处理错误
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
char input[20]={0};
//shutdown -s -t 60
//system() 执行系统命令
system("shutdown -s -t 60");
again:
printf("请注意,你的电脑在1分钟内关机,如果输入:我是猪,则取消关机\n");
scanf("%s",input);
if(strcmp(input,"我是猪")==0)
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}