C语言【二维数组】矩阵问题(XDOJ)

C语言【二维数组】矩阵问题(XDOJ)

补充知识

指向二维数组的指针

int a[3][4];
int (p)[4] //行指针,指向有四个列元素的一维数组(列不可缺省)
p=a;p=a[0];p=a[1];
p[i][j]<=>(p[i]+j)<=>(
(p+i)+j)<=>*(p+i)[j]
推荐使用p[i][j]

地址概念

  • a[0],a[1]–一维数组名,数组名代表元素首地址
  • a[0]<->&a[0][0] a[1]<->&a[1][0]

实际应用

实际应用中,一维数组也能实现矩阵输出,如前两个例子

S型/之字排序

%3d格式控制

问题描述
对于两个正整数 m、n(2≤m、n≤7),现有 mn 个整数(不小于 0,且小于 100),编
写程序完成这些数据从小到大的 S 型放置任务。
输入格式
第一行输入两个正整数 m、n(2≤m、n≤7)。
第二行输入 m
n 个整数(不小于 0,且小于 100)。
输出格式
输出处理后的 S 型数据矩阵,每个数据使用%3d 格式输出,每 n 个换一行,最后一行
不换行。

#include <stdio.h>

int main()
{
   
   
	int m,n,i,j;
	int a[100]; 
	scanf("%d %d",&m,&n);
	for(i=0;i<m*n;i++)
    scanf("%d",&a[i]);
    for(i=0;i<m*n-1;i++)
    {
   
   
    	for(j=i+1;j<m*n;j++)
    	{
   
   
    		if(a[j]<a[i])
    		{
   
   
    			int t;
    			t=a[j];
    			a[j]=a[i];
    			a[i]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值