Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2018, 22:20   #1
arduinhsik
Новичок
Джуниор
 
Регистрация: 08.12.2018
Сообщений: 5
По умолчанию перестановка местами строк матрицы с четными и нечетными номерами

сделал в задании всё, кроме перестановки местами в матрице строк с четными и нечетными номерами. Как осуществить сие действие я не знаю. Жду вашей помощи) А вот сам текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
#define n 5
#define m 5
int main()
{
int i,j,NA,NB;
float A[m][m],B[m][m],C[m][m];
printf ("Enter array A[%i][%i]:\n",m,m);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%f",&A[i][j]);
printf ("\n Massiv B[%i][%i] : \n",m,m);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
B[i][j]=i*cos(i+j);
printf("%.2f ",B[i][j]);
}
printf("\n");
}
NA=0;
NB=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if((A[i][j]>2.5))
{
NA++;
}
if((B[i][j]>2.5))
{
NB++;
}
}
}
printf ("NA=%i NB=%i\n",NA,NB);
if (NA>NB)
{
//замена местами строк в Матрице А
}
else
{
//замена местами строк в Матице B
}
printf ("\n Massiv C[%i][%i] : \n",m,m);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%.2f ",C[i][j]);
}
printf("\n");
}
getch();
return 0;
}
Изображения
Тип файла: jpg lSSUgHRMwvk.jpg (50.9 Кб, 123 просмотров)
arduinhsik вне форума Ответить с цитированием
Старый 08.12.2018, 22:43   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Сообщение от arduinhsik Посмотреть сообщение
Как осуществить сие действие я не знаю.
Да это ж великая тайна... это ж вовсе не:
взять первую и второю строку и в цикле поменять элементы местами
взять третью и четвертую строку и в цикле поменять элементы местами
...

Не-не, это определенно какая-то магия.
p51x вне форума Ответить с цитированием
Старый 08.12.2018, 22:54   #3
arduinhsik
Новичок
Джуниор
 
Регистрация: 08.12.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
взять первую и второю строку и в цикле поменять элементы местами
взять третью и четвертую строку и в цикле поменять элементы местами
Спасибо

Последний раз редактировалось arduinhsik; 09.12.2018 в 01:15.
arduinhsik вне форума Ответить с цитированием
Старый 08.12.2018, 22:57   #4
arduinhsik
Новичок
Джуниор
 
Регистрация: 08.12.2018
Сообщений: 5
По умолчанию

я пытался так сделать, но выдает ту же матрицу
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
#define n 5
#define m 5
int main()
{
int i,j,k,NA,NB;
int A[m][m],B[m][m],C[m][m];
printf ("Enter array A[%i][%i]:\n",m,m);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%5d",&A[i][j]);
printf ("\n Massiv B[%i][%i] : \n",m,m);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
B[i][j]=i*cos(i+j);
printf("%5d ",B[i][j]);
}
printf("\n");
}
NA=0;
NB=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if((A[i][j]>2.5))
{
NA++;
}
if((B[i][j]>2.5))
{
NB++;
}
}
}
printf ("NA=%i NB=%i\n",NA,NB);
if (NA>NB)
{
for (i=0; i<n; i++)
{
k = A[2][j];
A[2][j] = A[1][j];
A[1][j] = k;
k = A[4][j];
A[4][j] = A[3][j];
A[4][j] = k;
}
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
printf("%5d", A[i][j]);
}
printf("\n");
}
}
else
{
for (i=0; i<n; i++)
{
k = B[2][j];
B[2][j] = B[1][j];
B[1][j] = k;
k = B[4][j];
B[4][j] = B[3][j];
B[4][j] = k;
}
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
printf("%5d", B[i][j]);
}
printf("\n");
}
}
getch();
return 0;
}

Последний раз редактировалось arduinhsik; 08.12.2018 в 23:42.
arduinhsik вне форума Ответить с цитированием
Старый 09.12.2018, 00:56   #5
arduinhsik
Новичок
Джуниор
 
Регистрация: 08.12.2018
Сообщений: 5
По умолчанию проблема с выводом массива

всем привет, была вот такая программа:
Код:
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
#define q 5 
#define l 5 
int main(void) 
{ 
double a[q][l],b[5][5],tempC; 
int i,j,Na,Nb; 
for (i=0;i<q;i++) 
{ 
for (j=0;j<l;j++) 
{ 
scanf("%lf",&a[i][j]); 
if (a[i][j]>2.5) 
Na++; 
} 
} 

printf("Array a:\n"); 
for(i=0; i<q; i++) 
{ 
for(j=0; j<l; j++) 
{ 
printf("|%9.4lf",a[i][j]); 
} 
printf("|\n"); 
} 

for (i=1;i<6;i++)
{ 
for (j=1;j<6;j++) 
{ 
b[i-1][j-1]=i*cos(i+j); 
if (i*cos(i+j)>2.5) 
Nb++; 
} 
} 
printf("Array b:\n"); 
for(i=0; i<5; i++) 
{ 
for(j=0; j<5; j++) 
{ 
printf("|%9.4lf",b[i][j]); 
} 
printf("|\n"); 
} 
printf ("Na=%d Nb=%d\n",Na,Nb); 

if (Na>Nb) 
{ 
for (i=0;i<(q-1);i+=2) 
{ 
for (j=0;j<l;j++) 
{ 
tempC=a[i][j]; 
a[i][j]=a[i+1][j]; 
a[i+1][j]=tempC; 
} 
} 
printf("array C :\n"); 
for(i=0; i<q; i++) 
{ 
for(j=0; j<l; j++) 
{ 
printf("|%9.4lf",a[i][j]); 
} 
printf("|\n"); 
} 
} 
else 
{ 
for (i=0;i<4;i+=2) 
{ 
for (j=0;j<5;j++) 
{ 
tempC=b[i][j]; 
b[i][j]=b[i+1][j]; 
b[i+1][j]=tempC; 
} 
} 
printf("New array C:\n"); 
for(i=0; i<5; i++) 
{ 
for(j=0; j<5; j++) 
{ 
printf("|%9.4lf",b[i][j]); 
} 
printf("|\n"); 
} 
} 
return(0); 
}
нормально работала, но решил ее слегка изменить, и после изменений стал неправильно выводиться массив В:
Код:
#include <stdio.h>
#include <conio.h> 
#include <math.h> 
#include <iostream>
#define n 5
#define m 5
int main()
{
int i,j,k,NA,NB;
int A[m][m],B[m][m],C;
printf ("Enter array A[%i][%i]:\n",m,m);
	for(i=0;i<n;i++)
	for(j=0;j<n;j++)
	scanf("%5i",&A[i][j]);
	printf ("\n Massiv B[%i][%i] : \n",m,m);   
   for(i=0;i<n;i++)
   {
     for(j=0;j<n;j++)
	 {
       B[i][j]=i*cos(i+j);
       printf("%5i ",B[i][j]);
	 }
     printf("\n");
   }
   NA=0;
   NB=0;
   for(i=0;i<n;i++)
   {
	 for(j=0;j<n;j++)
	 {
	   if((A[i][j]>2.5)) 
	   {
         NA++;
       } 
	   if((B[i][j]>2.5)) 
	   {
         NB++;
       } 
     } 
   }
   printf ("NA=%i NB=%i\n",NA,NB);
  if (NA>NB) 
{ 
for (i=0;i<(n-1);i+=2) 
{ 
for (j=0;j<n;j++) 
{ 
C=A[i][j]; 
A[i][j]=A[i+1][j]; 
A[i+1][j]=C; 
} 
} 
printf("ArrAy C :\n"); 
for(i=0; i<n; i++) 
{ 
for(j=0; j<n; j++) 
{ 
printf("%5i",A[i][j]); 
} 
printf("\n"); 
} 
} 
else 
{ 
for (i=0;i<(n-1);i+=2) 
{ 
for (j=0;j<n;j++) 
{ 
C=B[i][j]; 
B[i][j]=B[i+1][j]; 
B[i+1][j]=C; 
} 
} 
printf("New ArrAy C:\n"); 
for(i=0; i<n; i++) 
{ 
for(j=0; j<n; j++) 
{ 
printf("%5i",B[i][j]); 
} 
printf("\n"); 
} 
}

   getch();
return 0; 
}
может кто-нибудь подсказать, в чем ошибка?


_____
Код программы нужно выделять (форматировать) тегами [CODE] [/CODE] (читать FAQ)
Модератор
Изображения
Тип файла: jpg Снимок1.jpg (86.0 Кб, 133 просмотров)
Тип файла: jpg Снимок.jpg (37.0 Кб, 119 просмотров)

Последний раз редактировалось Serge_Bliznykov; 09.12.2018 в 01:08.
arduinhsik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести сначала элементы массива с четными номерами, а затем - с нечетными номерами Lolopop12 Общие вопросы C/C++ 6 22.02.2016 02:02
Вывести сначала элементы массива с четными номерами, а затем - с нечетными номерами Lolopop12 Общие вопросы C/C++ 0 15.02.2016 06:14
задание по Scilab.Определить сумму элементов последовательности с нечетными и элементов с четными порядковыми номерами. irekgaysin Помощь студентам 0 18.01.2014 11:10
Определить сумму элементов последовательности с нечетными и сумму элементов с четными порядковыми номерами irekgaysin Помощь студентам 0 26.12.2013 16:41
перестановка строк матрицы fratriecz Паскаль, Turbo Pascal, PascalABC.NET 1 14.12.2012 19:18