1、找出100以内的所有素数,将结果存放在数组中并按每行10个数的形式输出。
C语言源码:
#include <stdio.h> int main() { int a[101]; int i, j; for (i=1;i<=100;i++) { a[i] = 1; } i = 2; do { j = 2 * i; while (j <= 100 && a[i] == 1) { a[j] = 0; j += i; } i++; } while (i <= 100); int s = 0; for (i=2;i<=100;i++) { if (a[i] == 1) { printf("%d ", i); s++; if (s % 10 == 0) { printf("\n"); } } } return 0; }2、编写程序利用插入法对数组中的数据进行升序排序。
C语言源码:
#include <stdio.h> int main() { int a[10]; printf("请依次输入10个数:"); int i, j, k, input; for (i=0;i<10;i++) { scanf("%d", &input); if (i == 0) { a[0] = input; } else { for (j=0;j<=i-1;j++) { if (a[j] >= input) { for (k=i;k>=j;k--) { a[k+1] = a[k]; } break; } } a[j] = input; } } for (i=0;i<10;i++) { printf("%d ", a[i]); } return 0; }
3、设有一个二维数组a[4][4],从键盘输入所有元素并找出马鞍点,马鞍点即该位置上的数在该行最大,在该列最小,也可能没有马鞍点。
C语言源码:
#include <stdio.h> int main() { int a[4][4]; int i, j; printf("请输入16个数:"); for (i=0;i<4;i++) { for (j=0;j<4;j++) { scanf("%d", &a[i][j]); } } int max, f; for (i=0;i<4;i++) { max = 0; for (j=1;j<4;j++) { if (a[i][j] > a[i][max]) { max = j; } } f = 0; for (j=0;j<4;j++) { if (a[j][max] < a[i][max] && j != i) { f = 1; break; } } if (f == 0) { printf("(%d,%d)\n", i, max); } } return 0; }4、设有一个二维数组a[4][4],编写程序求出:
(1)所有元素之和;
(2)从左上角到右下角的对角线上元素之和;
(3)从右上角到左下角的对角线上元素之和;
(4)所有靠边元素之和。
C语言源码:
#include <stdio.h> int main() { int a[4][4]; int i, j, sum; printf("请输入16个数:"); sum = 0; for (i=0;i<4;i++) { for (j=0;j<4;j++) { scanf("%d", &a[i][j]); sum += a[i][j]; } } printf("所有元素之和:%d\n", sum); sum = 0; for (i=0;i<4;i++) { sum += a[i][i]; } printf("从左上角到右下角的对角线上元素之和:%d\n", sum); sum = 0; for (i=0;i<4;i++) { sum += a[i][3-i]; } printf("从右上角到左下角的对角线上元素之和:%d\n", sum); sum = 0; for (i=0;i<4;i++) { for (j=0;j<4;j++) { if (i==0 || i==3 || j==0 || j==3) { sum += a[i][i]; } } } printf("所有靠边元素之和:%d\n", sum); return 0; }