第二类、特殊数字(24 道)
1.奇数:输出 1-1000 之间所有的奇数。
include <stdio.h>
void main() {
int i;
for (i = 1; i <= 1000; i++)
if (i % 2 == 1)
printf("%d,", i);
}
2.偶数:输出 1-1000 之间所有的偶数。
include <stdio.h>
void main() {
int i;
for (i = 1; i <= 1000; i++)
if (i % 2 == 0)
printf("%d,", i);
}
3.素数:输出 1-1000 之间所有的素数。
include <stdio.h>
void main() {
int i, j;
for (i = 1; i <= 1000; i++) {
for (j = 2; j < i; j++)
if (i % j == 0)
break;
if (i == j)
printf("%d,", i);
}
}
4.完数:输出 1-1000 之间所有的完数。
include <stdio.h>
void main() {
int i, j, s;
for (i = 1; i <= 1000; i++) {
s = 0;
for (j = 1; j < i; j++)
if (i % j == 0)
s += j;
if (i == s)
printf("%d,", i);
}
}
5.回文数:输出 100-999 之间所有的回文数。
include <stdio.h>
void main() {
int i, g, b;
for (i = 100; i <= 999; i++) {
g = i % 10;
b = i / 100;
if (g == b)
printf("%d,", i);
}
}
6.水仙花数:输出 100-999 之间所有的水仙花数。
include <stdio.h>
void main() {
int i, g, s, b;
for (i = 100; i <= 999; i++) {
g = i % 10;
s = i / 10 % 10;
b = i / 100;
if (g g g + s s s + b b b == i)
printf("%d,", i);
}
}
7.中位数:计算有限个数的数据的中位数的方法是:把所有的同类数据按照大小
的顺序排列。如果数据的个数是奇数,则中间那个数据就是这群数据的中位数;
如果数据的个数是偶数,则中间那 2 个数据的算术平均值就是这群数据的中位
数。现在给出 n 个正整数,求它们的中位数。
include <stdio.h>
/ 冒泡排序 /
void sort(int a[], int n) {
int i, j, t;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (a[j] > a[j + 1]) {
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
}
void main() {
int a[100], n, i;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
sort(a, n);
if (n % 2 == 1) {
printf("%d", a[n / 2]);
} else {
printf("%.2f", (a[n / 2] + a[n / 2 - 1]) / 2.0);
}
}
8.完全平方数:若一个数能表示成某个数的平方的形式,则称这个数为完全平方
数。
include <stdio.h>
include <math.h>
int ISquare(int n) {
int m = (int) sqrt(n);
if (m * m == n)
return m;
return 0;
}
void main() {
int n, p;
scanf("%d", &n);
if (p = ISquare(n))
printf("%d 是完全平方数,%d=%d*%d\n", n, n, p, p);
else
printf("%d 非完全平方数\n", n);
}
9.随机数:生成 100 个 1(含 1)-100(含 100)之间的随机数。
include <stdio.h>
include <stdlib.h>
include <time.h>
int getRand(int min, int max) {
return rand() % (max - min + 1) + min;
}
void main() {
int i;
srand(time(NULL));
for (i = 1; i <= 100; i++) {
printf("%d\n", getRand(1, 100));
}
}