空柠檬 2021-12-06 08:54 采纳率: 90.5%
浏览 75
已结题

真的尽力了,但还是不会,求帮看思路问题。

#include"stdio.h"
int main()
{
int a[10][10],b[10];
int m,n,i,j,k,t,count;
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<m;i++)
{
count=0;
for(j=0;j<n;j++)
{
if(a[i][j]==1)
count++;
}
if(count!=n)
{
for(k=0;k<m;k++)
{
b[k]=i;
}
}
}
for(i=0;i<m-k;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=0;
}
}
for(i=m-k-1;i<m;i++)
{
for(t=0;t<k;t++)
{
for(j=0;j<n;j++)
{
a[i][j]=a[b[t]][j];
}
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%2d",a[i][j]);
}
printf("\n");
}
}

img

  • 写回答

1条回答 默认 最新

  • 南七灵 2021-12-06 11:50
    关注

    帮你稍微改了一下

    #include "stdio.h"
    int main()
    {
        int a[10][10];
        int m, n, i, j, t, s, count,cnt = 0;
        scanf("%d%d", &m, &n);
        for (i = 0; i < m; i++)
        {
            for (j = 0; j < n; j++)
            {
                scanf("%d", &a[i][j]);
            }
        }
    
        printf("\n");
        for (i = m - 1; i >= 0; i--)
        {
            count = 0;
            cnt ++;//记录遍历的行数
            if(cnt > m) break;//如果当前遍历过的行数>m说明全部遍历过了,退出循环
            for (j = 0; j < n; j++)
            {
                if (a[i][j] == 1)
                    count++;
            }
            if (count == n)
            { //删
                if (i == 0)
                { //删第一行
                    for (t = 0; t < n; t++)
                    {
                        a[i][t] = 0;
                    }
                    break;
                }
                for (s = i; s > 0; s--)
                {
                    for (t = 0; t < n; t++)
                    {
                        a[s][t] = a[s - 1][t];
                    }
                }
                for (t = 0; t < n; t++)
                { //第一行补0
                    a[0][t] = 0;
                }
                i ++;//由于下降了一行,这里的i加一重新遍历这一行
            }
        }
    
        for (i = 0; i < m; i++)
        {
            for (j = 0; j < n; j++)
            {
                printf("%d ", a[i][j]);
            }
            printf("\n");
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月8日
  • 已采纳回答 12月6日
  • 创建了问题 12月6日

悬赏问题

  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教