1.写代码将三个整数按从大到小输出。
代码示例:
#include <stdio.h>
void Swap(int* px, int* py)
{
int z = *px;
*px = *py;
*py = z;
}
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d %d",&a, &b, &c);
if (a < b)
{
Swap(&a, &b);
}
if (a < c)
{
Swap(&a, &c);
}
if (b < c)
{
Swap(&b, &c);
}
printf("%d %d %d", a, b, c);
return 0;
}
运行结果:
2 3 1
3 2 1
这里运用了函数的传址调用,在C语言函数中详细介绍了传址调用:https://mp.csdn.net/mp_blog/creation/editor/133105119
2.给定两个数,求这两个数的最大公约数。
代码示例:
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int min = (a < b) ? a : b;
while (min > 0)
{
if (a % min == 0 && b % min == 0)
{
printf("%d", min);
break;
}
min--;
}
return 0;
}
运行结果:
54 72
18
用辗转相除法提高效率:
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d", &a, &b);
while (c = a % b)
{
a = b;
b = c;
}
printf("%d", b);
return 0;
}
运行结果:
72 54
18
3.编写程序数一下1-100的所有整数中,出现多少个数字9。
代码示例:
#include <stdio.h>
int main()
{
int i = 0;
int count = 0;
for (i = 1; i <= 100; i++)
{
if (i % 10 == 9)
{
count++;
}
if (i / 10 == 9)
{
count++;
}
}
printf("%d", count);
return 0;
}
运行结果:
20
4.计算1/1 - 1/2 + 1/3 - 1/4 + 1/5 ... + 1/99 - 1/100的值打印出结果。
代码示例:
#include <stdio.h>
int main()
{
int i = 1;
double sum = 0;
int flag = 1;
for (i = 1; i <= 100; i++)
{
sum = sum + flag*(1.0 / i);
flag = -flag;
}
printf("%lf", sum);
return 0;
}
运行结果:
0.688172
5.求10个整数中的最大值。
代码示例:
#include<stdio.h>
int main()
{
int arr[10] = { 0 };
int i = 0;
for (i = 0; i < 10; i++)//输入数字
{
scanf("%d", &arr[i]);
}
int max = arr[0];//比较出最大值
for (i = 1; i <= 10; i++)
{
if (max < arr[i])
{
max = arr[i];
}
}
printf("%d", max);
return 0;
}
运行结果:
6 7 9 2 4 5 8 12 56 42
56
6.在屏幕上输出9*9乘法口诀表。
代码示例:
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 9; i++)//打印所有行的循环
{
int j = 0;
for (j = 1; j <= i; j++)//打印每一行中所有列的循环
{
printf("%d*%d=%-2d ", i, j, i * j);//%-2d的意思是两位左对齐;若为%3d则意思是三位右对齐
}
printf("\n");
}
return 0;
}
运行结果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
7.实现一个函数,打印乘法口诀表,口诀表的行数和列数由自己输入。
代码示例:
#include <stdio.h>
void print_table(int n)
{
int i = 0;
for (i = 1; i <= n; i++)
{
int j = 0;
for (j = 1; j <= i; j++)
{
printf("%d*%d=%-2d ", i, j, i * j);
}
printf("\n");
}
}
int main()
{
int n = 0;
scanf("%d", &n);
print_table(n);
return 0;
}
运行结果:
8
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64