Программирование.С++

программирование с++

не происходит обмен строк массива, если количеств столбцов четное. Почему?

#include <cstdlib>
#include <iostream>

using namespace std;
const int MAX = 10;
int A[MAX][MAX];
int n,m,a,b,summ,min_summ,imin;

void init();
void printRow(int);
void print();
void summa();
void swap();

int main(int argc, char *argv[])
{
printf("Enter the range of values ");
scanf("%d %d",&a,&b);
if ( a > b )
{
int c;
c = a;
a = b;
b = c;
}
do {
printf("Input size: n,m (1..9) ");
scanf("%d %d" ,&n ,&m) ;
}
while((n<1) || (n>9) || (m<1) || (m>9));
init();

print();
for ( int j = 0; j < m; j++ )
min_summ += A[0][j];
summa();
swap();
printf("Result \n");
print();

system("PAUSE");
return EXIT_SUCCESS;
}


void init()
{
srand(time(NULL));
int i, j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
A[i][j] = rand()%(b-a+1)+a;
}


void printRow(int i)
{
for(int j=0; j<m; j++)
printf ("%4d" ,A[i][j]) ;
}


void print()
{
for(int i=0; i<n; i++)
{
printf("[%d]",i+1);
printRow(i);
printf("\n");
}
}


void summa()
{
for ( int i = 0; i < n; i++)
{
int j;
summ = 0;
for ( j = 0; j < m; j++ )
{
summ += A[i][j];
if ( summ < min_summ && j + 1 == m )
{
min_summ = summ;
imin = i;
}
}
printf("String [%d] Total =%4d\n",i + 1,summ);
}
printf("Min. total%5d String %2d\n",min_summ,imin + 1);
}


void swap()
{
for ( int j = 0; j < m; j++ )
for ( int i = 0; i < n; i++ )
{
int c;
c = A[0][j];
A[0][j] = A[imin][j];
A[imin][j] = c;
}
}


Примечание:
не актуально. увидел ошибку
Ответы:
"не актуально. увидел ошибку " - молодец!


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.