}
【6.1】编函数判断任意给定的二维整数组(100X100)中是否有相同元素。 #include
int i = 0, j = 0; int array[100][100];
int value = 1;
for (; i < 100; i++) {
for (j = 0; j < 100; j++) {
array[i][j] = value; value++; } }
int m,n;
array[17][99] = 8888; //预设置一个相同的数值 _Bool bSame = 0;
for (i = 0; i < 100; i++) {
for (j = 0; j < 100; j++) {
int temp = array[i][j];
n = j + 1;
for (m = i; m < 100; m++) {
for (; n < 100; n++) {
if (temp == array[m][n]) {
printf(\, m, n); bSame = 1; goto over; } }
n = 0; //纵坐标归0 }
} }
over:
if (bSame) {
printf(\包含相同元素\); } else {
printf(\不包含相同元素\); }
return 0; }
【6.3】 编写函数将矩阵转置 #include
void print(int array[][4]) {
int i,j;
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
printf(\, array[i][j]); }
printf(\); } }
int main(void) {
int i = 0, j;
int array[4][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};
print(array);
for (; i < 4; i++) {
for (j = i; j < 4; j++) {
}
int temp = array[i][j]; array[i][j] = array[j][i]; array[j][i] = temp; }
printf(\转置之后的结果为\\n\); print(array);
return 0; }
【6.6】 编写函数,把数组中的相同元素删除 #include
#define GET_ARRAY_LEN(array,len){len = (sizeof(array) / sizeof(array[0]));}
//本题将删除元素后的数组最后一个元素设置为-1 int len;
void removeArray(int *array) {
int i, j, k;
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; ) {
if (array[j] == -1 || array[i] != array[j]) {
j++; } else { }
//移动后面的元素
for (k = j; k < len - 1; k++) {
array[k] = array[k + 1]; }
array[len - 1] = -1; //设置最后一个元素为-1 } } }
int main(void) {
int array[] = {12, 14, 50, 67, 14, 45, 50, 50, 1, 32};
GET_ARRAY_LEN(array, len);
removeArray(array);
int i = 0;
for (; i < len; i++) {
printf(\, array[i]); }
return 0; }
【6.7】 找出给定二维数组中所有鞍点。若数组元素A[i][j]恰好是第i行的最小值,第j列的最大值则称为鞍点。 #include
void print(int array[][4]); int main(void) {
int array[4][4] = {{12, 33, 45, 67}, {99, 78, 88, 69}, {5, 123, 66, 51}, {43, 32, 76, 29}};
int i, j, k;
print(array);
for (i = 0; i < 4; i++) {
int rowMin = array[i][0]; int minY = 0;
for (j = 1; j < 4; j++) {
if (array[i][j] < rowMin) {
rowMin = array[i][j]; //记录当前行的最小值 minY = j; } }
//内层循环结束,表示完成一行比对,获取到了当前行的最小值,使用minY坐标获取该列的最大值
相关推荐: