Czesc!
Staram sie stworzyc funkcje, która najpierw sprawdza czy krancowe elementy w wierszu sa dodatnie, jeśli tak to zeby zamienić pierwsza liczbę z ostatnia, druga z przedostatnia itd.
Ponizej wklejam moja funkcje:
Niestety do if dziala wszystko ok, tzn sprawdza czy suma krancowych elementow w wierszu w Tablicy jest dodatnie a potem niestety zamienia w dziwny sposob liczby w wierszu.
Moze ktos widzi gdzie robie blad.
void funkcja_zmieniajaca(double tablica[][k])
{
for (int i = 0; i < w; i++)
{
for (int j = 0; j < k; j++)
{
double suma = 0;
suma += tablica[i][0];
suma += tablica[i][k - 1];
if (suma > 0)
{
int schowek;
schowek = tablica[i][j];
tablica[i][j] = tablica[i][k - (i + 1)];
tablica[i][k - (i + 1)] = schowek;
}
}
}
}
Caly program
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
const int w = 5; // wielkosc tablicy TAB[w][k]
const int k = 5; // wielkosc tablicy TAB[w][k]
void losowanie_liczb_w_tablicy(double [][k], double ,double );
void drukowanie_tablicy(string,double[][k], int, int);
void drukowanie_sumy_elementow_obwodu(string,double[][k],int);
void funkcja_zmieniajaca(double[][k]);
int main()
{
const double X = 10;
const double D = 10;
const double G = 100;
double A[w][k] = {};
double B[w][k] = {};
srand(time(0));
losowanie_liczb_w_tablicy(A,-X,X);
losowanie_liczb_w_tablicy(B, D, G);
drukowanie_tablicy("Tablica A",A,5,1);
drukowanie_tablicy("Tablica B",B,7,2);
drukowanie_sumy_elementow_obwodu("Tablicy A",A,1);
drukowanie_sumy_elementow_obwodu("Tablicy B",B,2);
funkcja_zmieniajaca(A);
drukowanie_tablicy("Tablica A", A, 5, 1);
system("pause");
return 0;
}
void losowanie_liczb_w_tablicy(double tablica[][k], double poczatek_przedzialu, double koniec_przedzialu)
{
for (int i = 0; i < w; i++)
{
for (int j = 0; j < k; j++)
{
tablica[i][j] = poczatek_przedzialu + (koniec_przedzialu - poczatek_przedzialu) * rand() / double(RAND_MAX);
}
}
}
void drukowanie_tablicy(string tekst,double tablica[][k], int szerokosc, int dokladnosc)
{
cout << "***************" << tekst << "***************" << endl;
for (int i = 0; i < w; i++)
{
for (int j = 0; j < k; j++)
{
cout << fixed << setprecision(dokladnosc) << setw(szerokosc) << tablica[i][j] << "\t";
}
cout << endl;
}
cout << endl;
}
void drukowanie_sumy_elementow_obwodu(string tekst,double tablica[][k],int dokladnosc)
{
double suma = 0;
for (int j = 0; j < k; j++)
{
suma += tablica[0][j];
}
for (int j = 0; j < k; j++)
{
suma += tablica[w -1][j];
}
for (int i = 1; i < w-1; i++)
{
suma += tablica[i][0];
suma += tablica[i][k - 1];
}
cout << fixed << setprecision(dokladnosc) << "Suma " << tekst << " wynosi = " << suma << endl;
}
void funkcja_zmieniajaca(double tablica[][k])
{
for (int i = 0; i < w; i++)
{
for (int j = 0; j < k; j++)
{
double suma = 0;
suma += tablica[i][0];
suma += tablica[i][k - 1];
if (suma > 0)
{
int schowek;
schowek = tablica[i][j];
tablica[i][j] = tablica[i][k - (i + 1)];
tablica[i][k - (i + 1)] = schowek;
}
}
}
}