【C语言】删除矩阵中的指定元素

1.源代码

#include <stdio.h>

int main(){

    int i,j,count=0,num;

    int a[5][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{0,1,2,3,4},{6,7,8,9,0}};

    scanf("%d",&num);

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

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

                  if(a[i][j]!=num){
						count++; 
						a[(count-1)/5][(count-1)%5]=a[i][j]; 

                  }           

    for(i=0;i<5;i++)
	{
    	for(j=0;j<5;j++)
		{ 
			if(count==0) 
				return 0; 
			else
			{ 
				printf("%3d",a[i][j]); 
				count--; 
			} 
	}
           printf("\n");

    }

    return 0;
}

2.代码思路

这段代码的功能是从标准输入读取一个整数num,然后在一个5x5的二维数组a中删除所有等于num的元素,并将剩余的元素向左上角移动,最后在标准输出打印出新的数组a。

这段代码的逻辑是:

  • 首先,定义了四个整型变量i,j,count和num,以及一个5x5的整型二维数组a,初始化为{{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{0,1,2,3,4},{6,7,8,9,0}}。
  • 然后,使用scanf函数从标准输入读取一个整数,并赋值给num变量。
  • 接着,使用两层for循环遍历数组a中的每个元素,如果元素不等于num,就将count变量加一,并将元素赋值给a[(count-1)/5][(count-1)%5],这样就相当于将元素向左上角移动,覆盖掉之前等于num的元素。
  • 最后,使用另外两层for循环打印出新的数组a,如果count变量为0,说明数组a中所有元素都等于num,就直接返回0,否则就使用printf函数打印出每个元素,并将count变量减一,直到count变量为0为止。

例如,如果您输入的num为3,那么这段代码的输出样例是:

3
  1  2  4  5  6
  2  4  5  6  7
  0  1  2  3  4
  6  7  8  9  0

如果您输入的num为0,那么这段代码的输出样例是:

0
  1  2  3  4  5
  2  3  4  5  6
  3  4  5  6  7
  6  7  8  9
  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值