一、写代码将三个整数数按从大到小输出
方法1.
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d %d", &a, &b, &c);
if (a > b && b > c)
printf("%d %d %d", a, b, c);
else if (a > c && c > b)
printf("%d %d %d", a, c, b);
else if (b > a && a > c)
printf("%d %d %d", b, a, c);
else if (b > c && c > a)
printf("%d %d %d", b, c ,a);
else if (c> a && a > b)
printf("%d %d %d", c, a, b);
else
printf("%d %d %d", c, b, a);
return 0;
}
此代码构想出了三个整数大小排序的六种情况,运用if-else语句,解决大小排序。
二、写一个代码打印1-100之间所有3的倍数的数字
#include<stdio.h>
int main()
{
int a = 0;
for (a = 3; a < 100; a++)
{
if(a%3==0)
printf("%d ", a);
}
return 0;
- 本代码运用了 for 循环、if语句。
三、给定两个数,求这两个数的最大公约数
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d", &a, &b);
if (a > b)
c = b;
else
c = a;
while (1)
{
if (a % c == 0 && b % c == 0)
{
printf("%d\n", c);
break;
}
c--;
}
return 0;
}
- 首先需要运用if 语句找出两个数的最小值
- 运用while、if语句找出最大公约数;
三、打印1000年到2000年之间的闰年
闰年条件:如果N能够被4整除,并且不能被100整除,则是闰年;或者:N能被400整除,也是闰年
#include<stdio.h>
int main()
{
int a = 0;
for (a = 1000; a <= 2000; a++)
{
if ((a % 4 == 0 && a % 100 !=0)|| a % 400==0)
{
printf("%d ", a);
}
}
return 0;
}
&&表示并且,两者需都成.
|| 表示或者,两者有一方成立即可。
运行代码如下:
四、 写一个代码:打印100~200之间的素数
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int count = 0;
for (a = 100; a <=200; a++)
{
for (b = 2; b <= a; b++)
{
if (a % b == 0)
{
break;
}
}
if (a ==b)
{
count++;
printf("%d ", a);
}
}
printf("%d ", count);
return 0;
}
- 素数:即质数,除了1和自己之外,再没有其他的约数,则该数据为素数.
- 代码中两个for循环的意思是;让a(100~200)中的每一个数与b(2~a)中的数相除:
- 如果有可以被整除的数(a%b == 0)那么结束这次循环(break).
- 如果都循环到了a=b的情况下了,还没有被整除,那么这个数‘a’及为素数。
- 运行结果如下:
五、编写程序数一下 1到 100 的所有整数中出现多少个数字9
#include<stdio.h>
int main()
{
int a = 0;
int count = 0;
for (a = 1; a <= 100; a++)
{
if (a % 10 == 9)
{
count++;
}
if (a / 10 == 9)
{
count++;
}
}
printf("%d ", count);
return 0;
}
- if (a % 10 == 9) 解决的是 9 19 29 ....
- if (a / 10 == 9)解决的是 90 91 92 ...
- 99两个条件都满足,一个数字count+2.
运行结果如下:
六、给定秒数 seconds ,把秒转化成小时、分钟和秒
#include<stdio.h>
int main()
{
int t = 0;
int h = 0;
int min = 0;
int s = 0;
scanf("%d", &t);
h = t / 3600;
min = t % 3600 / 60;
s = t % 3600 % 30;
printf("%d\n", h);
printf("%d\n", min);
printf("%d\n", s);
return 0;
}
输入3661s ,输出 1小时1分钟 1 秒。
七、从键盘输入5个学生的成绩(整数),求他们的平均成绩(浮点数,保留一位小数)。
#include<stdio.h>
int main()
{
int i = 0;
int s = 0;
int input = 0;
for (i = 1; i <= 5; i++)
{
scanf("%d", &input);
s = (s+input);
}
printf("%.1f", s/5.0);
return 0;
}
- for 循环加 scanf语句简便了输入代码。
- printf("%.1f", s/5.0); 表示输入保留一位小数的float类型的数。
运行结果如下:
八、反向输出一个四位数
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
while (a)
{
printf("%d", a % 10);
a = a / 10;
}
return 0;
}
- 一个数先用10取余,首先得到的是一串书的最后一个数字;
- 在除10,因为整形只能取整数,其会删除一串数字的最后一个数字;
- 反复进行此操作即可得出这串数字的倒序数。
运行代码如下: