C语言:生成一个4*4数组,并找出与一个指定数字最相近的元素的值以及所在位置

原创 2018年04月16日 20:46:51

题目来源:大工慕课 链接
作者:Caleb Sung

题目要求

使用两重循环为一个4X4的二维数组赋值,形如{{11,12,13,14},{21,22,23,24},{31,32,33,34},{41,42,43,44}},然后从键盘输入一个整数,输出与该整数最接近的元素,及其所在的行和列。

提示

  • math.h这个头文件有abs()方法可用于求绝对值。
  • 要记得用变量储存过程中的行列位置,详细请看代码

参考解答

这里计算使用的数组是随机的:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>

void main(){
    int a[4][4], i, j, d=999, input, tmp_i, tmp_j;
    srand(time(NULL)); 

    printf("请输入数字:  ");
    scanf("%d", &input);

    for(i=0; i<4; i++)
        for(j=0; j<4; j++)
            a[i][j] = rand()%100+0;
    printf("\n随机生成的数组为:\n");

    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
        {
            printf("%d\t",a[i][j]);
            if(j==3)
                printf("\n");
        }
    printf("\n");

    for (i=0; i<4; i++){
        for(j=0; j<4; j++){
            if (abs(a[i][j] - input) < d){
                d = abs(a[i][j]-input);
                tmp_i = i;
                tmp_j = j;
            }
        }
    }

    printf("数组中与输入的数字最接近的元素是:   %d\n", a[tmp_i][tmp_j]);
    printf("这个元素位于第 %d 行第 %d 列.", tmp_i+1, tmp_j+1);
}

运行结果

【输出】

请输入数字:

【输入】
26

【输出】

随机生成的数组为:
37      15      7       14
77      46      52      34
50      70      0       60
2       44      29      30

数组中与输入的数字最接近的元素是:      29
这个元素位于第 4 行第 3 列.
版权声明:根据中华人民共和国著作权法,转载请标明来源,作者保留依法追究未经授权转载行为的权利 https://blog.csdn.net/qq_41933331/article/details/79966258

有一个3行4列的二维数组,要求编程找出最大的元素,并输出所在的行和列。

//随机产生一个3行4列的数组 取值范围在10--50     int array[3][4] = {0};     for (int i = 0; i 3; i++) {        ...
  • Adrian_shi
  • Adrian_shi
  • 2015年04月20日 17:50
  • 2336

在数组中找出四个数字的和等于指定数字(4Sum)

Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = t...
  • sinat_36246371
  • sinat_36246371
  • 2016年10月13日 13:44
  • 1136

iOS应用开发应遵循的10条设计原则

大家知道,苹果App Store的应用审查十分严格,可以说近乎吹毛求疵。如何才能确保自己的应用通过苹果的审查,顺利在App Store上架?以下是BI为广大开发者总结出来的10条设计原则:   ...
  • leiphone
  • leiphone
  • 2011年12月26日 12:10
  • 472

有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

【描述】 有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。 【输出结果】 max=10 row=2 colum=1 【C语言】 #includ...
  • u013053957
  • u013053957
  • 2015年06月22日 21:47
  • 5676

找出数组中最小的 K 个数

给定一个长度为 n 的数组,要求输出数组中最小的 K 个数(k 思路: 最简单的思路是将数组进行排序,由小到大排序,则数组最前面的 K 个既我们要求的。 但是这样的时间复杂度为 nlongn,在...
  • qq_34528297
  • qq_34528297
  • 2017年05月24日 17:46
  • 181

有一个3*4的矩阵,求所有元素中的最大值

#include int max_value(int array[][4]) { int i,j,max; max=array[0][0]; for(i=0;i
  • ZDF0414
  • ZDF0414
  • 2015年03月18日 19:24
  • 523

Windows平台下GCC编程之从键盘上输入一个3*4的整数矩阵,要求输出其最大元素的值,以及它的行号和列号

Code::Blocks 16.01 + GCC 4.9.2 for Windows 编译运行成功 //4. 从键盘上输入一个3*4的整数矩阵,要求输出其最大元素的值,以及它的行号和列号。 ...
  • xx1930812245
  • xx1930812245
  • 2016年04月15日 14:58
  • 1233

编写一个Java程序,创建制定长度的int型数组,并生成100以内的随机数为数组的每个元素赋值

package exercise; import java.util.Arrays; public class exer{ public static void main(String[...
  • qq_33130209
  • qq_33130209
  • 2017年04月05日 16:24
  • 634

数组_习题:编写一个4*4矩阵元素对角线之和的程序

# include int main(void){ int a[4][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i, j, sum1, s...
  • u010345869
  • u010345869
  • 2014年04月14日 10:58
  • 1841

C语言求一个3*4整数矩阵中的最大元素。

算法思想:先使变量max的初值等于矩阵中第一个元素的值,然后遍历矩阵,每次遍历都找出”最大值“放在max中,遍历完成后,max的值就是所有元素中的最大值。 #define _CRT_SECURE_N...
  • tzy5210
  • tzy5210
  • 2016年08月06日 19:00
  • 546
收藏助手
不良信息举报
您举报文章:C语言:生成一个4*4数组,并找出与一个指定数字最相近的元素的值以及所在位置
举报原因:
原因补充:

(最多只允许输入30个字)