精华内容
下载资源
问答
  • C语言用指针知识按要求输出5*5矩阵

    千次阅读 2020-04-02 18:44:04
    用指针知识将一个5×5矩阵的最大值放在中心,四角按从左到右,从上到下的顺序存放最小值。 编程提示:利用打擂台法求最大值和最小值。 输入样例: 输入数据,之间用空格分隔,例如 11 12 13 14 15 21 31 66 88 23 10 ...

    用指针知识将一个5×5矩阵的最大值放在中心,四角按从左到右,从上到下的顺序存放最小值。 编程提示:利用打擂台法求最大值和最小值。

    输入样例:
    输入数据,之间用空格分隔,例如
    11 12 13 14 15
    21 31 66 88 23
    10 42 68 31 35
    65 68 99 82 29
    71 72 73 74 75

    输出样例:
    输出格式数据格式如下,用一个空格分隔
    10 71 75 14 11
    21 31 66 88 23
    15 42 99 31 35
    65 68 68 82 29
    12 72 73 74 13

    二维——>一维 ([m][n]:	x,y ——> x*n+y )
    最大数——>a[2][2]——>[2*n+2]
    最小数——>a[0][0]——>[0*n+0]
    次小数——>a[0][4]——>[0*5+4]
    次次小数——>a[4][0]——>[4*5+0]
    次次次小数——>a[4][4]——>[4*5+4]
    
    #include <stdio.h>
    
    void fun(int *p,int n)
    {
    	int *pmax,*pmin,*m;
    	int t;
    	pmax = pmin = m = p;	//四个指针均指向一维空间的起始单元
    	//找最大数和最小数
    	for(m=m+1;m<p+n;m++)
    	{
    		if(*m > *pmax)
    		{
    			pmax = m;
    		}
    		if(*m <	*pmin)
    		{
    			pmin = m;
    		}
    	}
    	//把最大数放到中心位置		
    	t = *(p+2*5+2);
    	*(p+12) = *pmax;
    	*pmax = t;
    	//把最小值放到左上角
    	t = *p;
    	*p = *pmin;
    	*pmin = t;
    	//找次小数
    	pmin = p+1;
    	m = p + 2;
    	for(; m<p+n;m++)
    	{
    		if(*m < *pmin)
    		{
    			pmin = m;
    		}
    	}
    	//把次小数置换到右上角
    	t = *(p+4);
    	*(p+4) = *pmin;
    	*pmin = t;
    	//找次次小数
    	pmin = p+1;
    	m = p+2;
    	for(; m<p+n;m++)
    	{
    		if( (*m<*pmin)&&(m!=(p+4)) )
    		{
    			pmin = m;
    		}
    	}
    	//把次次小数置换到左下角	[4][0]——>4*5+0
    	t = *(p+20);
    	*(p+20) = *pmin;
    	*pmin = t;
    	//找出此次次次小数
    	pmin = p+1;
    	m = p+2;
    	for(; m<p+n;m++)
    	{
    		if( (*m<*pmin)&&(m!=(p+4))&&(m!=(p+20)) )
    		{
    			pmin = m;
    		}
    	}
    	//把次次次小数置换到右下角	[4][4]——>24
    	t = *(p+24);
    	*(p+24) = *pmin;
    	*pmin = t;
    }	
    
    int main()
    {
    	int a[5][5],i,j;
    	for(i=0;i<5;i++)
    	{
    		for(j=0;j<5;j++)
    		{
    			scanf("%d",&a[i][j]);
    		}
    	}
    	fun(*a,25);
    	for(i=0;i<5;i++)
    	{
    		for(j=0;j<4;j++)
    		{
    			printf("%d ",a[i][j]);
    		}
    		printf("%d",a[i][j]);
    		printf("\n");
    	}				
    	return 0;
    }						
    
    展开全文
  • C语言实现螺旋矩阵输出

    千次阅读 多人点赞 2018-12-11 22:53:35
    问题描述:  所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。... 5  输出样例:  1 2 3 4 ...

    问题描述:

      所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。

      输入格式:

      输入在一行中给出一个正整数N(<10)。

      输出格式:

      输出N×N的螺旋方阵。每行N个数字,每个数字占3位。

      输入样例:

       5

      输出样例:

      1   2   3   4   5

     16 17 18 19  6

     15 24 25 20  7

     14 23 22 21  8

     13 12 11 10  9

    解题思路:

      对题目进行分析,数字需要按顺时针的顺序输出,所以行和列的数字呈现规律化,

     

    所以可以用四个for循环来进行控制顺时针输出。

      程序代码:

    #include<stdio.h>

    int main()

    {

      int i,j,k,base=1,n;

      int a[10][10]={1};//初始化数组全为一,为了满足当n=1时的巧妙设计。

      scanf("%d",&n);

      for(k=0;k<n/2;k++)

       {

         //行不变,列加加

         for(i=k;i<=n-1-k;i++)

            a[k][i]=base++;

         //列不变,行加加

         for(j=k+1;j<n-1-k;j++)

            a[j][n-1-k]=base++;

        //行不变,列减减

         for(i=n-1-k;i>k;i--)

            a[n-1-k][i]=base++;

        //列不变,行减减

         for(j=n-1-k;j>k;j--)

            a[j][k]=base++;

         if(n%2==1)

            a[(n-1)/2][(n-1)/2]=base;//如果N为奇数,中心的一个为最后一个数,即N*N;

       }

      

       for(i=0;i<n;i++)

       {

         for(j=0;j<n;j++)

            printf("%3d",a[i][j]);

         printf("\n");

       }

       return 0;

    展开全文
  • C语言矩阵转置

    千次阅读 2020-04-02 19:09:29
    编写函数,求一个3×3矩阵的转置矩阵。 (1)编程提示 转置矩阵,将原矩阵的行变为列,列变为行。注意,通过指针访问二维数组时的方法。本题采用的是指向数组元素的指针变量。 输入样例: 1 2 3 4 5 6 7 8 9 输出...

    编写函数,求一个3×3矩阵的转置矩阵。
    (1)编程提示
    转置矩阵,将原矩阵的行变为列,列变为行。注意,通过指针访问二维数组时的方法。本题采用的是指向数组元素的指针变量。


    输入样例:

    1 2 3
    4 5 6
    7 8 9

    输出样例:
    1 4 7
    2 5 8
    3 6 9


    注意:此题输出的每行的最后一个数不能有空格
    #include <stdio.h>
    void Trans(int(*p)[3])
    {
    	int t, i, j;
    	for (i = 0; i < 3; i++)
    	{
    		for (j = 0; j < i; j++)
    		{
    			t = *(*(p + i) + j);
    			*(*(p + i) + j) = *(*(p + j) + i);
    			*(*(p + j) + i) = t;
    		}
    	}
    
    }
    void main()
    {
    	int a[3][3], i, j;
    	for (i = 0; i < 3; i++)//原矩阵输入
    	{
    		for (j = 0; j < 3; j++)
    		{
    			scanf("%d", &a[i][j]);
    		}
    	}
    	Trans(a);
    	for (i = 0; i < 3; i++)//转置输出
    	{
    		for (j = 0; j < 2; j++)
    		{
    			printf("%d ", a[i][j]);
    		}
            printf("%d",a[i][j]);	//每行最后一个数
    		printf("\n");
    	}
    }
    
    
    展开全文
  • 题目描述 写一个函数,使给定的一个二维数组(3×3)转置,即...C语言 题目截图: 思路: 遇到过坑,我想着转换。结果比较难实现! 后来就,改变一下输出顺序就好啦! 交换下标! for(i=0;i&lt;z;i++) {...

    题目描述

    写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
    

    输入

    一个3x3的矩阵
    

    输出

    转置后的矩阵
    

    样例输入

    1 2 3
    4 5 6
    7 8 9
    

    样例输出

    1 4 7 
    2 5 8 
    3 6 9 
    

    来源/分类

    C语言 
    

    题目截图:
    在这里插入图片描述
    思路:

    遇到过坑,我想着转换。结果比较难实现!
    后来就,改变一下输出顺序就好啦!
    交换下标!
    for(i=0;i<z;i++)
    	{
    	for(j=0;j<z;j++)
    	{
    		cout<<a[j][i]<<" ";//<<"输出!"
    	}
    	cout<<endl;
    	}
    

    代码:

    #include<iostream>
    using namespace std;
    #define z 3
    int main()
    {
    	int a[z][z]={0};int i,j,t;
    for(i=0;i<z;i++)
    	for(j=0;j<z;j++)
    	{
    		cin>>a[i][j];
    	}
    
    /*cout<<"输出!"<<endl;
    	for(i=0;i<z;i++)
    	{
    	for(j=0;j<z;j++)
    	{
    		cout<<"输出!"<<a[i][j];
    	}
    	cout<<endl;
    	}*/
    
    
    	//cout<<"输出!"<<endl;
    	for(i=0;i<z;i++)
    	{
    	for(j=0;j<z;j++)
    	{
    		cout<<a[j][i]<<" ";//<<"输出!"
    	}
    	cout<<endl;
    	}
    }
    

    代码截图:
    在这里插入图片描述
    运行结果:
    在这里插入图片描述
    OJ结果:
    在这里插入图片描述

    展开全文
  • PTA(C语言矩阵转置

    千次阅读 2019-02-12 13:27:18
    将一个3×3矩阵转置(即行和列互换)。 输入格式: 在一行中输入9个小于100的整数,其间各以一个空格间隔。 输出格式: 输出3行3列的二维数组,每个数据输出占4列。 输入样例: 1 2 3 4 5 6 7 8 9 输出样例: 1 4 7 2 5 ...
  • (3×3)矩阵转置–C语言程序设计教程(第三版)课后习题8.4 1.描述 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。 输入 一个3x3的矩阵 输出 转置后的矩阵 样例输入 1 2 3 4 5 6 7 8 9 样例输出 ...
  • 2418: C语言习题 矩阵元素变换 时间限制: 1 Sec 内存限制: 128 MB 提交: 293 解决: 155 题目描述 将一个n×n(2 函数实现。用main函数调用。 输入 输入n和矩阵中的每个元素 输出 变换后的矩阵 样例...
  • 1141:C语言-转置矩阵

    2021-01-05 10:48:31
    一个3x3的矩阵 输出格式 转置后的矩阵 输入样例 1 2 3 4 5 6 7 8 9 输出样例 1 4 7 2 5 8 3 6 9 多观察找找规律,考察对下标的掌握。 #include<iostream> using namespace std; int main() { int arr...
  • 程序的功能是:定义一个整型二维数组,存放一个5×5矩阵,要求从键盘输入矩阵的值,找出主对角线上其值最大的元素。主对角线如示例中1-4-9-16-25。 示例 示例输入 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 ...
  • C语言)指针转置矩阵

    千次阅读 2020-04-12 16:54:51
    2.编写函数,求一个3×3矩阵的转置矩阵。 (1)编程提示 转置矩阵,将原矩阵的行变为列,列变为行。...输出样例: 1 4 7 2 5 8 3 6 9 代码如下 #include<stdio.h> int main() { void move(int pointer);...
  • C语言检验并打印幻方矩阵

    千次阅读 2019-10-06 21:11:15
    从键盘输入一个5×5矩阵并将其存入一个二维整型数组中,检验其是否为幻方矩阵,并将其按指定格式显示到屏幕上。 输入格式:"%d" 输出格式: 如果是幻方矩阵输出提示信息:"It is a magic square!\n" 矩阵元素...
  • 将一个3×3矩阵转置(即行和列互换)。 输入格式: 在一行中输入9个小于100的整数,其间各以一个空格间隔。 输出格式: 输出3行3列的二维数组,每个数据输出占4列。 输入样例: 1 2 3 4 5 6 7 8 9 输出样例: 1 4 7 2...
  • (c语言)力扣之零矩阵

    2020-10-11 17:59:42
    矩阵 编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输出: [ [1,0,1], [0,0,0], [1,0,1] ] 示例 2: 输入: [ [0,1,2,0], [3,4,5,2], [1,3...
  • 编写程序,将一个n×n()的矩阵进行转置,即将行与列互换,转置后再按n×n矩阵形式输出。 输入格式: 输入整数n,从第2行开始依次输入n*n个整数,各数以一个空格分隔。 输出格式: 按n行n列的形式输出转置后的二维...
  • 给定一个n×m矩阵相乘,求它的转置。其中1≤n≤20,1≤m≤20,矩阵中的每个元素都在整数类型(4字节)的表示范围内。 【输入格式】  第一行两个整数n和m;  第二行起,每行m个整数,共n行...-4 5 23 9 样例输出 34...
  • 编写程序,求n×m和m×k矩阵之积。 输入 只有1组数据。 第1行是2个整数n和m(1<n,m<10),然后连续n行为n×m的矩阵。 第n+2行是2个整数m和k(1<m,k<10),然后连续m行为m×k的矩阵输出 2个矩阵的乘积。...
  • 编程从键盘输入一个N×N的矩阵A,求矩阵B(B=B+A’),即将矩阵A与其转置矩阵A’相加,结果存放到矩阵B中。例如: 输入下面的矩阵: 1 2 3 4 5 6 7 8 9 其转置矩阵为: 1 4 7 2 5 8 3 6 9 程序的输出程序为: 2 6 10 6...
  • c语言(螺旋矩阵)2017.4.23

    千次阅读 2017-04-23 16:55:57
    /*对于任意的M×M方阵...输出螺旋矩阵,每个数字占三个字符的宽度,右对齐,同行相邻两个数字间用一个空格隔开,每行最后一个数字后面没有空格。 样例输入 7 样例输出  1 2 3 4 5 6 7  24 25 26 27 28 29 8  
  • 湖南科技大学2018年C语言程序设计实验题——问题 D: 矩阵的迹 时间限制: 1 Sec 内存限制: 128 MB 题目描述 在线性代数中,一个n×n矩阵A的主对角线(从左上方至右下方的对角线)上各个元素的总和被称为矩阵A的迹(或...
  • 通过把这些状态输出出来,就可以显示出相应的图案。生命游戏演化的规则:每个矩阵方格可以包含一个有机体,不在边上的有机体有8个相邻方格。1. 如果一个细胞周围有3个细胞为生,则该细胞为生(即该细胞若原先为死,...
  • 题目解决代码及点评/***********************...9. 在主函数内任意输入一个6矩阵,编写一函数求出每一行的和放到一个一维数组中, 输出矩阵及其每一行的和。 */ /**********************************************
  • 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至...5 6 1 1 7 1 8 1 1 1 1 1 输出样例: 35 #include<stdio.h> #include<math.h&g
  • 练习7-7 矩阵运算 (20分) 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。...5 6 1 1 7 1 8 1 1 1 1 1 输出样例: 35 解答 #include<stdio.h> in
  • 练习7-7 矩阵运算 (20 分) 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有...5 6 1 1 7 1 8 1 1 1 1 1 输出样例: 35 补充:在代数学中,n阶行列式,从左上至右下的数归为主对角线,
  • 题目 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行...输出格式: 在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。 输入样例: 4 2 3 4 1 5 6 1 1 7 1 8 1 1 1 1 ...
  • 练习7-7 矩阵运算 (20 分) 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。 输入格式: 输入第一行给出正整数n(1&...5 6 1 1...
  • 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至...5 6 1 1 7 1 8 1 1 1 1 1 输出样例: 35 #include<stdio.h> int main() { int n,

空空如也

空空如也

1 2 3 4
收藏数 67
精华内容 26
关键字:

c语言输出5×5矩阵

c语言 订阅