не происходит обмен строк массива, если количеств столбцов четное. Почему?
#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;
}
}
Примечание:
не актуально. увидел ошибку
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.