-
用筛选法求100以内的素数。
#include <stdio.h> #include <math.h> int main() { int i, j, n, a[101]; //定义数组包含101个元素 for (i = 1; i <= 100; i++) //a[0]不用,只用a[1]~a[100] a[i] = i; //使a[1]~a[100]的值为1~100 a[1] = 0; //挖掉a[1] for (i = 2; i < sqrt(100); i++) //外层循环,限制循环次数 for (j = i + 1; j <= 100; j++) { //内层循环,用i下一个未被挖去的数j除i后面的数,将j的倍数挖掉 if (a[i] != 0 && a[j] != 0) { if (a[j] % a[i] == 0) //整除不为素数,反之不为素数 a[j] = 0; //将非素数挖掉 } } printf("\n"); for (i = 2, n = 0; i <= 100; i++) { //a[0]为空,a[1]被挖掉,故从下标为2开始遍历 if (a[i] != 0) { //选出值不为0的数组元素,即素数 printf("%5d", a[i]); //输出素数,宽度为5列 n++; //累积本行输出的数据个数 } if (n == 10) { //10个数据为一行,换行,n重新置0 printf("\n"); n = 0; } } printf("\n"); return 0; }
-
用选择法对10个整数排序。
#include <stdio.h> int main() { int i, j, t, a[11]; printf("enter 10 numbers:\n"); for (i = 1; i < 11; i++) scanf("%d", &a[i]); for (i = 1; i <= 9; i++) for (j = i + 1; j <= 10; j++) { if (a[i] > a[j]) { //如果前一个数比后一个数大,利用中间变量将两数置换 t = a[i]; a[i] = a[j]; a[j] = t; } } printf("the sorted numbers is:\n"); for (i = 1; i < 11; i++) printf("%5d", a[i]); printf("\n"); return 0; }
-
求一个3×3的整型矩阵对角线元素之和。
#include <stdio.h> int main() { int i, j, a[3][3], sum = 0; for (i = 0; i < 3; i++) for (j = 0; j < 3; j++) scanf("%d", &a[i][j]); for (i = 0; i < 3; i++) sum += a[i][i]; printf("sum = %d\n", sum); return 0; }
c_20200429
最新推荐文章于 2020-05-06 23:43:08 发布