1.使用C语言写⼀个程序打印 1~100之间的奇数,要求输出的数字中间加上空格。
思路:
遍历1 ~ 100的数字,判断该数是否为奇数,若是奇数则输出。
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i < 101; i++)
{
if (i % 2 == 1)
{
printf("%d ", i);
}
}
printf("\n");
return 0;
}
2.打印9*9乘法口诀表
思路:
利用两个循环的嵌套实现乘法口诀表的遍历。
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
for (i = 1; i < 10; i++)
{
for (j = 1; j < i + 1; j++)
{
printf("%d*%d = %2d ",i,j,i*j);
}
printf("\n");
}
return 0;
}
3.使用C语言写⼀个程序打印100~200之间的素数,数字中间使用空格分割。
思路:
外层利用for循环遍历100 ~ 200,内部再增加一个for循环用于判断外层循环的数是否为素数,素数是指只能被1和它本⾝整除的正整数。通过进一步的认识,我们可以知道我们只需遍历2 ~
它本身
\sqrt[]{它本身}
它本身判断是否可以取余数即可,当取余数为0时表示该数不为素数。
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
for (i = 100; i < 201; i++)
{
int j = 0;
int flag = 0;
for (j = 2; j < sqrt(i) + 1; j++)
{
if (i % j == 0)
{
flag = 1;
break;
}
}
if (flag==0)
{
printf("%d ",i);
}
}
printf("\n");
return 0;
}
4.判断三角形
输⼊三个整数a,b,c,判断由a,b,c作为三条边组成的三⻆形,如果不能组成三⻆形则输出:⾮三⻆形;如果是三⻆形,再继续判断,如果是等边三⻆形,则输出:等边三⻆形;如果是等腰三⻆形,则输出:等腰三⻆形;否则输出普通三⻆形。
测试1:
输⼊:3 4 5
输出:普通三⻆形
测试2:
输⼊:3 3 3
输出:等边三⻆形
测试3:
输⼊:3 3 4
输出:等腰三⻆形
思路:
进行多组输入,判断两边之和是否大于第三边,否:非三角形,是的话还要接着判断三边是否相等,两边是否相等,从而判断是等腰三角形,等边三角形和普通三角形。
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
while ((scanf("%d %d %d", &a, &b, &c)) != EOF)
{
if (a + b > c && a + c > b && b + c > a)
{
if ((a == b && a != c) || (a == c && a != b) || (b == c && a != b))
{
printf("等腰三角形\n");
}
else if (a == b && a == c)
{
printf("等边三角形\n");
}
else
{
printf("普通三角形\n");
}
}
else
{
printf("非三角形\n");
}
}
return 0;
}
5.计算最大公约数
输⼊2个整数m和n,计算m和n的最⼤公约数,并打印出结果。
测试1:
输⼊:18 24
输出:6
测试2:
输⼊:17 3
输出:1
思路:
主要是运用辗转相除法:辗转相除法也称为欧⼏⾥得算法,是⼀种⽤来求两个正整数最⼤公约数的⽅法。它基于⼀个简单的数学原理:如果 a 和 b 是两个正整数,且 a>b ,则a和b的最⼤公约数等于 b 和 a%b ( a 除以 b所得的余数)的最大公约数。
#include<stdio.h>
int main()
{
int m = 0;
int n = 0;
scanf("%d %d", &m, &n);
int k = 1;
while (k = m%n)
{
m = n;
n = k;
}
printf("%d\n", n);
return 0;
}