• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Как переписать код с с++ на с(си)? А точнее эту строчку из кода int k[n] = {0}; Мне выдает ошибку,как по другому можно записать?

innash04

New member
30.04.2022
1
0
BIT
0
#include <iostream>
using namespace std;

int main(){
const int H = 5;
const int W = 5;
int m[H] = {0};
int matrix[H][W] = {
{0,0,0,0,0},
{0,0,0,0,1},
{0,0,1,1,1},
{0,0,0,1,1},
{0,1,1,1,1}
};
int i,j;
for( i = 0 ; i < H ; i++ )
for( j = 0 ; j < W ; j++ )if(matrix[j]==0)m++;

for( i = 0 ; i < H -1 ; i++ )
for( j = i + 1 ; j < W ; j++)
if(m[j]<m){
int tmp = m;
m=m[j];
m[j] = tmp;
int p;
for( p = 0 ; p < W ; p++ ){
tmp = matrix[p];
matrix[p]=matrix[j][p];
matrix[j][p]=tmp;
}

}


for( i = 0 ; i < H ; i++ ){
for( j = 0 ; j < W ; j++)cout<<matrix[j]<<' ';
cout<<endl;
}


return 0;
}

C++:
#include <iostream>
using namespace std;
 
int main(){
const int H = 5;
const int W = 5;
int m[H] = {0};
int matrix[H][W] = {
    {0,0,0,0,0},
    {0,0,0,0,1},
    {0,0,1,1,1},
    {0,0,0,1,1},
    {0,1,1,1,1}
};
int i,j;
for( i = 0 ; i < H ; i++ )
          for( j = 0 ; j < W ; j++ )if(matrix[i][j]==0)m[i]++;
 
for( i = 0 ; i < H -1 ; i++ )
      for( j = i + 1 ; j < W ; j++)
          if(m[j]<m[i]){   
          int tmp = m[i];
          m[i]=m[j];
          m[j] = tmp;
          int p;
          for( p = 0 ; p < W ; p++ ){
          tmp = matrix[i][p];
          matrix[i][p]=matrix[j][p];
          matrix[j][p]=tmp;
          }
        
    }
 
for( i = 0 ; i < H ; i++ ){
for( j = 0 ; j < W ; j++)cout<<matrix[i][j]<<' ';
cout<<endl;
}
 
return 0;
}
 

fuzzz

Green Team
03.02.2019
249
468
BIT
2
Замени этот участок кода
C++:
const int H = 5;
const int W = 5;
На этот
C:
#define H 5
#define W 5

Такой код должен быть
C:
#include <stdio.h>
#define H 5
#define W 5

int main(void)
{
    int m[H] = {0};
   
    int matrix[H][W] = {
        {0,0,0,0,0},
        {0,0,0,0,1},
        {0,0,1,1,1},
        {0,0,0,1,1},
        {0,1,1,1,1}
    };

    int i,j;

    for( i = 0 ; i < H ; i++ )
              for( j = 0 ; j < W ; j++ )if(matrix[i][j]==0)m[i]++;

    for( i = 0 ; i < H -1 ; i++ )
        for( j = i + 1 ; j < W ; j++)
            if(m[j]<m[i])
            {
                int tmp = m[i];
                m[i]=m[j];
                m[j] = tmp;
                int p;
                for( p = 0 ; p < W ; p++ )
                {
                    tmp = matrix[i][p];
                    matrix[i][p]=matrix[j][p];
                    matrix[j][p]=tmp;
                }
            }

    for( i = 0 ; i < H ; i++ )
    {
        for( j = 0 ; j < W ; j++)
            printf("%d ", matrix[i][j]);

        printf("\n");

    }


    return 0;
}

Снимок экрана (146).png
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!