@Inna04

Как переписать код с с++ на с(си)?

Задание:Упорядочить содержащие нули строки матрицы в порядке возрастания их количества.Помогите , пожалуйста.
#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;
}
  • Вопрос задан
  • 258 просмотров
Решения вопроса 1
CityCat4
@CityCat4 Куратор тега C
//COPY01 EXEC PGM=IEBGENER
Обычно я такими вещами не занимаюсь... но... жалко девочку, пример скачала, но он на плюсах, а злой препод требует plain C (а еще может потребовать обьяснить, как оно работает! :DDD)
(JFYI, Инна - я бы только за форматирование пару поставил - читать это невозможно от слова совсем)

#include <iostream>
меняем на
#include <stdio.h>
using namespace std;
нафиг.

Цикл вывода, где потоковый оператор cout, переписать следующим образом:
for ( j = 0 ; j < W ; j++)
  printf("%d ", matrix[i][j]);  
putchar('\n');


И настоятельно рекомендую, прежде чем идти лабу сдавать - почитать или посмотреть в отладчике, как это работает. Потому что чайник срезается одним вопросом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы