题目:程序首先将随机产生的12个水仙花数存放于一个3行4列的数组array中, 然后找出
其中的最大的水仙花数所在的行号与列号,并显示最大水仙花数、以及行号与列号。
说明:所谓水仙花数是指其各位数字立方和等于该数本身的数。
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> int narcissus();#函数的说明 int max_value(int[][4], int[]);#函数的说明 int main() { int array[3][4]; //用于存放12个水仙花数 int row_col_num[2]; //用于存放最大水仙数的行列号 int i, j; srand((unsigned)time(NULL)); printf("\n"); for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) { array[i][j] = narcissus(); printf("%5d", array[i][j]); } printf("\n"); } /***********SPACE***********/ printf("最大水仙花数是 %d\n", max_value(array, row_col_num)); printf("行号是 %5d\n", row_col_num[0]); printf("列号是 %5d\n", row_col_num[1]); return 0; } int narcissus() { int M, N, t, sum, find = 0; while (!find) { sum = 0; N = rand() % 900 + 100; M = N; while (M) { t = M % 10; /***********SPACE***********/ sum+=t*t*t; M = M / 10; } if (N == sum) find = 1; } return N; } int max_value(int array[][4], int rw[]) { int i, j, max; max = array[0][0]; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) if (max < array[i][j]) { max = array[i][j]; rw[0] = i; rw[1] = j; } return max; }