练习
//1.输入2.3.1,从大到小输出3.2.1
int main()
{
int a = 0;
int b = 0;
int 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;
}
//输出——从大到小
printf("%d %d %dn", a, b, c);
return 0;
}
2.打印1-100之间所有3的倍数的数字
//int main()
//{
// int i = 0;
}
3.给定两个数,求这两个数的最大公约数
//法一
//int main()
//{
// int a = 0;
// int b = 0;
// int MIN = 0;
// int i = 0;
// scanf("%d%d", &a, &b);
// if (a >= b)
// {
// MIN = b;
// }
// else if (a < b)
// {
// MIN = a;
// }
// for (i = MIN; i >= 1; i--)
// {
// if ((a % i == 0) & (b % i == 0))
// {
// printf("最大公约数=%dn", i);
// break;
// }
// }
// return 0;
//}
//法二 辗转相除法
//int main()
//{
// int m = 0;
// int n = 0;
// scanf("%d%d", &m, &n);
// int t = 0;
// while (m % n)
// {
// t = m % n;
// m = n;
// n = t;
// }
// printf("最大公约数=%dn", n);
// return 0;
//}
//求最小公倍数
int main()
{
int a = 0;
int b = 0;
int MAX = 0;
int i = 0;
scanf("%d%d", &a, &b);
if (a >= b)
{
MAX = a;
}
else if (a < b)
{
MAX = b;
}
for (i = MAX; i >= 0; i++)
{
if ((i % a == 0) & (i % b == 0))
{
printf("最小公倍数=%dn", i);
break;
}
}
return 0;
}
4.打印1000年到2000年之间的闰年
//int main()
//{
// int i = 0;
// for (i = 1000; i <= 2000; i++)
// {
// if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
// {
// printf("%d ", i);
// }
// }
// return 0;
//}
int main()
{
int i = 0;
for (i = 1000; i <= 2000; i++)
{
if (i % 4 == 0)
{
if(i % 100 != 0)
{
printf("%d ", i);
}
if (i % 400 == 0)
{
printf("%d ", i);
}
}
}
return 0;
}
5.打印100-200之间的素数(只能被1和它本身整除)
//int main()
//{
// int i = 0;
// int a = 0;
// for (i = 100; i < 200;i++) //先产生100到200的数字
// {
// for (a = i - 1; a >= 2; a--)
// {
// if (i % a == 0)
// {
// break;
// }
// }
// //跳出来可能是被整除也可能是素数循环结束
//
// if (a == 1) //最后一次循环执行完,2-1=1不再小于等于2
// {
// printf("%d ", i);
// }
// }
// return 0;
//}
//int main()
//{
// int i = 0;
// int a = 0;
// int flag = 1;
// for (i = 100; i < 200; i++)
// {
// for (a = i - 1; a >= 2; a--)
// {
// if (i % a == 0)
// {
// flag = 0;
// break;
// }
// }
// if(flag == 1)
// {
// printf("%d ", i);
// }
// }
// return 0;
//}
//sqrt——开平方的函数
//判断101是不是素数
//1.2——100之间数字试除
// m = a * b,则a和b中一定有一个<=m
// 因此,
//2.2~sqrt(101)之间的数字试除就行
//改为for(j = 2;j <= sqrt(i);j++)即可,计算机程序速度加快
//int main()
//{
// int i = 0;
// int a = 0;
// int count = 0;
// for (i = 101; i < 200; i += 2) //优化为101开始加2,全为奇数(偶数一定不是素数)
// {
// for (a = sqrt(i); a >= 2; a--) //优化为a从根号下i开始减
// {
// if (i % a == 0)
// {
// break;
// }
// }
// if (a == 1)
// {
// printf("%d ", i);
// count++;
// }
// }
// printf("ncount = %dn", count);
// return 0;
//}
一.goto语句
//goto语句
//int main()
//{
//flag:
// printf("hehen");
// printf("hahan");
//
// goto flag; //死循环
// return 0;
//}
//理论上goto语句是没有必要的
关机程序
只要运行起来,电脑就在1分钟内关机,如果输入:winter,就取消关机
shutdown -s -t 60 命令关机
shutdown -a 取消关机
int main()
{
//关机
//C语言提供了一个函数:system()——执行系统命令
char input[20] = { 0 }; //存放输入的信息
system("shutdown -s -t 60");
again:
printf("请注意,你的电脑在1分钟内关机,如果输入:winter,就取消关机n");
scanf("%s", input); //数组不用取地址,变量要取地址
if (strcmp(input, "winter") == 0) //两个字符串比较是不能用==的
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}
//替换goto
int main()
{
//关机
//C语言提供了一个函数:system()——执行系统命令
char input[20] = { 0 }; //存放输入的信息
system("shutdown -s -t 60");
while (1)
{
printf("请注意,你的电脑在1分钟内关机,如果输入:winter,就取消关机n");
scanf("%s", input); //数组不用取地址,变量要取地址
if (strcmp(input, "winter") == 0) //两个字符串比较是不能用==的
{
system("shutdown -a");
break;
}
}
return 0;
}
//goto语言真正适合的场景如下:
//for(...)
// for (...)
// {
// for(...)
// {
// if(disaster)
// goto error
// }
//}
//error:
// if(disaster)
//处理错误情况
//goto语句只能在一个函数范围内跳转,不能跨函数
void test()
{
flag:
printf("testn");
}
int main()
{
goto flag; //跨函数不可引用
return 0;
}



