Премини към съдържанието
От 1-ви септември 2021 г., вход във форумите ще е възможен само с имейл адрес вместо потребителско име. Ако не помните имейла с който сте се регистрирали, вижте го в настройките на профила си. ×
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Проблем със задача за обработка на двумерен масив


ivo220

Препоръчан отговор


Да се състави програма за обработка на двумерния масив A[N,N], където данните са цели числа в интервала [-500;1000]. Програмата да извърши следните действия:
-Отпечатване на условието на задачата;
-Отпечатване на имената на автора на програмата;
-Въвеждане на входните данни;
-Отпечатване на входните данни;
-А) Да се образува едномерен масив C[N], елементите на който са максималните елементи от всеки ред на масива A;
-Б) Полученият масив да се сортира по големина;
-Отпечатване на получените  резултати след обработка А) и след обработка Б).

 

 

Това е което успях да направя, но формулите нещо съм ги объркал.

 

 

#include <stdio.h>
#include <stdlib.h>
int const k = 15;
int i,j,b,br,max;
int a[k][k],c[k],x=0,y=0,temp;
int main()
{
printf("5: Da se sustavi programa za obrabotka na dvumeren masiv A[N,N],\n");
printf("kudeto dannite sa celi chisla v intervala [-500;1000].\n");
printf("A) Da se obrazuva ednomeren masiv C[N],\n");
printf("elementite na koito sa maksimalnite elementi\n");
printf("ot vseki red na masiva A.\n");
printf("B) Polucheniqt masiv da se sortira po golemina.\n");
printf("Otpechatvane na poluchenite rezultati sled obrabotka A)\n");
printf("i sled obrabotka B).\n");
printf("Ivelin Petrov Georgiev\n");
printf("Fak N: 000000000 ; EMF; TT ; 15 grupa.\n");
printf("Vuvedete broi redove i stulbove B=");
scanf("%d",&b);
for(i=0;i<b;i++)
for(j=0;j<b;j++)
do
{
printf("Vuvedete a[%d][%d]=",i,j);
scanf("%d",&a[j]);
}
while(!(a[j]>=-500&&a[j]<=1000));
printf("Izvejdane na vhodni danni:\n");
for(i=0;i<b;i++)
{
for(j=0;j<b;j++)
printf(" %d  ",a[j]);
printf(" \n");
}
for(i=0;i<b;i++)
{
for(j=0;j<b;j++)
if(a[j]<a[j+1])
{
max=a[j+1];
}
c[br]=max;
br++;
}
printf("Elementite na masiva C:\n");
for (i=0;i<br-1;i++)
printf("%d",c[br]);
printf("\n");
printf("Podredeni po golemina:\n");
for (j=i+1;j<br;j++)
if(c>=c[j])
{
temp=c;
c=c[j];
c[j]=temp;
}
for (i=0;i<br;i++)
printf("%d:",c);
printf("\n");
    system("pause");
    return 0;
}
 
Линк към коментара
Сподели в други сайтове

Намирането на максимален елемент на всеки ред е сбъркано.

     ...
     for (i=0;i<b;i++) {
         max = a[i][0];
         for (j=1;j<b;i++) 
             if (max < a[i][j])
                max = a[i][j];
         c[i]=max;
     }

От там нататък следва някаква каша, дето най-добре да се изтрие и напише наново.
Линк към коментара
Сподели в други сайтове

...

Здравейте !

В допълнение на коментара на @ined, следния код също трябва да се прегледа ... 

...
	printf("Podredeni po golemina:\n");
	for (j = i + 1; j < br; j++) 
		if (c[i] >= c[j]) {
			temp = c[i];
			c[i] = c[j];
			c[j] = temp;
		}
...
}

Това е полу-написано решение за сортиране по метода на пряката селекция - за повече информация, прочете тук.

В общи линии, трябва да изглежда нещо подобно на:

for (i = 0; i < br; i++) {
	for (j = i + 1; j < br; j++) {
		if (c[i] >= c[j]) {
			temp = c[i];
			c[i] = c[j];
			c[j] = temp;
		}
	}
}
Линк към коментара
Сподели в други сайтове

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване