Pereiti prie turinio

C++ Noriu pasikonsultuoti ir prasau kas galit padekit


Rekomenduojami pranešimai

Sveiki visi.

Dirbu su dvimaciu masyvu ir duota uzduotis manes praso:

"""Sukeisti vietomis maziausiai ir daugiausiai teigiamu elementu turincius stulpelius vietomis."""

Ir kiek bandau niekaip nesiseka man igyvendinti sio punkto savom jegom jau net depresuot pradedu. Ciklais skaiciavau suma ieskaujau maximumo ir minimumo bandaus sustatyt ir nieko nesigauna matomai kazka ne taip darau ir nesuprantu ka. Nes stulpeliai niekaip nepasikeicia vietomis :(

Veikiantis variandtas turetu atrodyti panasiai taip pvz destyme ant 4x4

1 5 -1 1

2 6 -3 3

3 7 8 2

-4 8 -3 4 2 stulpelis yra didziausias o 3 yra maziausias ir kad jie atvaizdavus susikeistu vietomis ir atrodytu pvz taip:

 

Kaip turetu atrodyti kai viskas veikia

1 -1 5 1

2 -3 6 3

3 8 7 2

-4 -3 8 4

 

Savo dvimati masyva esu apsirasiusi taip:

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int i, j ,e,x,y ; 
double vidurkis, sum;
double a=1; int matr[100][100];
cout <<"iveskite eiluciu kieki."; cin >> x;
cout <<"iveskite stulpeliu kieki."; cin>>y;
for (i=1; i<x+1; i++)                      
{       for (j=1; j<y+1; j++)
{ 
	cout << "Prasau realizuokite " << i << "-os eilutes " << j << "-a elementa";
	cin >>matr[i][j];
}
}
for (i=1; i<x+1; i++) 
{   for (j=1; j<y+1; j++)
{
	cout << matr[i][j] << "\t";
}
cout << endl;
}

    system ("pause");
       return 0;
}

 

Ir atsiprasau kad mano skiriamoji kalba netvarkinga nes kabliuko knopke sugedo :(

Nuoroda į pranešimą
Dalintis kituose puslapiuose

C++ masyvai indeksuojami nuo 0, o ne nuo 1. Kodo netestavau, bet turėtų būt daugmaž veikiantis.

 

// maxCol - stulpelio su didziausiu skaicium teigiamu reiksmiu indeksas
// maxPositiveValues - teigiamu reiksmiu skaicius maxCol stulepyje
// VERY_BIG_INTEGER - skaicius, visada didesnis uz bet koki kita masyve galinti buti
int maxCol = 0,
maxPositiveValues = 0,
minCol = 0,
minPositiveValues = VERY_BIG_INTEGER,
currentPositiveValues
tmp;

for(int i = 0; i < width; i++)
{
// Pravaziuojam stulpeli, suskaiciuojam kiek jame yra teigiamu reiksmiu
for(int j = 0; j < height; j++)
{
	if(mas[i][j] > 0)
	{
		currentPositiveValues++;
	}
}

// Jei esamam stulpely teigiamu reiksmiu daugiau nei bet kuriam anksciau tikrintam
if(currentPositiveValues > maxPositiveValues)
{
	maxCol = j;
	maxPositiveValues = currentPositiveValues;
}

// Jei esamam stulpely teigiamu reiksmiu maziau nei bet kuriam anksciau tikrintam
if(currentPositiveValues < minPositiveValues)
{
	minCol = j;
	minPositiveValues = currentPositiveValues;
}

currentPositiveValues = 0;
}

// Sukeiciam
for(j = 0; i < height; i++)
{
tmp = mas[minCol][j];
mas[minCol][j] = mas[maxCol][j];
mas[maxCol][j] = tmp;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...