problem z pętlą

SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 22
0

witam

nasmarowałem coś takiego
int main(){

int tab [5][5];
int suma=0;
srand(time(0));

for( int i=0;i<5;i++){
	
	for(int j=0;j<5;j++){
		
	tab[i][j]=rand()%89+10;
		cout<<tab[i][j]<<' ';
		
	}
	cout<<"\n";	
}


/*for(int i=0,j=4; (i<=4) && (j>=0) ;i++,j--){
	
	suma=suma+tab[i][j];
	
}
cout<<suma<<endl;	*/


for(int i=0;i<=4;i++){
	
	for ( int j=4;j>=0;j--){
		
		suma=suma+tab[i][j];

}

}

}

Program ma obliczyć sumę prawej przekątnej , pętla zakomentowana liczy dobrze natomiast chciałbym zrobić identyczną tylko ,że w podwójnej for a on mi sumuje wszystkie elementy gdzie mam błąd?

  • Rejestracja: dni
  • Ostatnio: dni
0

Źle rozumiesz działanie pętli. W Twoim przypadku zrobienie 2-forów jest niekorzystne.
for(int i = 0; i < 1; i++)
for(int j = 4; j >=0; j--)
suma+= tab[i][j];
i+=1;
W Twoim przypadku, zliczasz całą tablice.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
        suma=0;
        for(int i=0;i<5;++i)  for(int j=0;j<5;++j) if(i+j==4) suma=suma+tab[i][j];

Aczkolwiek tak jak napisał @ququnamuniux33 jest to bez sensu.

SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 22
0

ok juz widze swój błąd nie chce zakładać nowego tematu ,mam coś takiego :

#include<iostream>
#include<conio.h>
#include<time.h>
#include<windows.h>

using namespace std;

int main(){

int tab [5][5];
int suma=0;
srand(time(0));

int i,j;

cout<<endl;
for(i=0;i<5;i++){
	
	for(j=0;j<5;j++){
		
	tab[i][j]=rand()%89+10;
	
	cout<<tab[i][j]<< ' ';
	}
	cout<<"\n";	
}	

Jak mogę teraz wypełnić np pierwszy wierszem takim znakiem "**"?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

"**" - nie jest znakiem tylko napisem.
element tablicy typu int może zawierać liczby typu int ale nie może zawierać napisów (na upartego, w niektórych systemach, się da - ale to niedopuszczalne sztuczki).

Ponieważ masz w tablice wartości 10..99 to możesz sobie np ustalić niech wartość 0 oznacza "".
Więc wpisujesz do tablicy nie "
" tylko wartość 0.
Zaś przy wydruku jak napotkasz wartość 0 to nie drukujesz tej wartości tylko wyświetlasz "**".

SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 22
0
_13th_Dragon napisał(a):

"**" - nie jest znakiem tylko napisem.
element tablicy typu int może zawierać liczby typu int ale nie może zawierać napisów (na upartego, w niektórych systemach, się da - ale to niedopuszczalne sztuczki).

Ponieważ masz w tablice wartości 10..99 to możesz sobie np ustalić niech wartość 0 oznacza "".
Więc wpisujesz do tablicy nie "
" tylko wartość 0.
Zaś przy wydruku jak napotkasz wartość 0 to nie drukujesz tej wartości tylko wyświetlasz "**".

Jak to mogę zrobić ?możesz podać prosty przykład ,dzięki

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.