Chcę napisać program, który tworzy tablicę wg parametrów wprowadzonych przez użytkownika, wypełnia ją losowymi liczbami i liczy sumę na obwodzie.
‘x’,‘y’ to parametry tablicy, a ‘z’ to górny zakres liczbowy jakimi ma zostać wypełniona.
Nie działa mi jednak liczenie sumy na obwodzie. Oto fragment kodu:
int t[x][y];
for(int i=0; i
{
for(int j=0; j
{
t[x][y]=rand()%z+1;
cout << t[x][y] << "\t";
}
cout<
}
int suma=0;
for (int i=0; i
{suma=suma+t[i][0];};
for (int i=1; i
{suma=suma+t[0][i];};
for (int i=1; i
{suma=suma+t[x-1][i];};
for (int i=1; i
{suma=suma+t[i][y-1];};
skoro chcesz wypełnić tablicę losowymi danymi to w tym t[x][y] powinno chyba być t[j].
Poczytaj jeszcze o losowaniu losowych liczb, bo zapomniałeś o jednej rzeczy. Jak chcesz się nauczyć dobrze programować to powinieneś znaleźć rozwiązanie sam (wujek google podpowie na pewno - przed chwilą sprawdzałem)
Zrobiłem tak jak mówiłeś i wyszła jeszcze większa głupota…?
W Google wpisywałem takie frazy jak “sumowanie elementów tablicy na obwodzie” i inne podobne, nic nie znalazłem. Może podpowiesz chociaż co wpisać, jaki to rodzaj błędu?
Źle wykorzystujesz funkcję rand(). W chwili obecnej “losuje” ona zawsze jedną i tą samą wartość.
Co do liczników - ten kawałek kodu powinien ci rozjaśnić o co chodzi.
#include
using namespace std;
void main (void)
{
const int n=5;
int a[n];
a[0]=5;
a[1]=6;
a[2]=7;
a[3]=8;
a[4]=9;
for (int i=0;i
cout<
cout<<"\n --------------------------\n";
for (int i=0;i
cout<
system("pause");
}[/code]
Każdy szanujący się kompilator w momencie wykonania czegoś takiego powinien sypać ostrzeżeniami. Czytasz pięciokrotnie przypadkowe wartości (ściślej ujmując czytasz za tablicą dokładnie tyle bitów ile zajmuje int, i wyświetlasz je jako int) gdyż element tablicy o indeksie a[5] po prostu nie istnieje.