数组比较程序求答
有一个由0--100以内的整数组成10行10列的数组。输入10个0--100内的整数,与数组的每一行分别进行比较,把相同数为8、9、10的行分别打印输出(包括行号),求答。谢谢!
程序代码:
#include <stdio.h>
#include <windows.h>
#include <time.h>
#define N 10
void prt(int *a, int n) {
int i;
printf("%02d: ", n + 1);
for(i = 0; i < N; i++) {
printf("%-3d ", a[i]);
}
puts("");
}
int main(int argc, char* argv[]) {
int a[N][N], i, j, k, tmp[N], *p = tmp;
srand((unsigned int)time(NULL));
for(i = 0; i < N; i++) {
printf("%02d: ", i + 1);
for(j = 0; j < N; j++) {
a[i][j] = (int)(101.0 * rand() / (RAND_MAX + 1.0));
printf("%-3d ", a[i][j]);
if((j + 1) % 10 == 0) puts("");
}
}
printf("-----------------------------------------------------\n");
for(i = 0; i < N; i++) {
scanf("%d", p++);
}
for(i = 0; i < N; i++) {
p = tmp;
k = 0;
for(j = 0; j < N; j++) {
if(a[i][j] == *p++) k++;
}
switch(k) {
case 8:
puts("有8个相同的数:");
prt(*(a + i), i);
break;
case 9:
puts("有9个相同的数:");
prt(*(a + i), i);
break;
case 10:
puts("有10个相同的数:");
prt(*(a + i), i);
break;
default:
break;
}
}
return 0;
}
