• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zmiana wartości części dwuwymiarowej tablicy char

Object Storage Arubacloud
0 głosów
137 wizyt
pytanie zadane 24 grudnia 2016 w C i C++ przez gierasinskiw Użytkownik (510 p.)
edycja 24 grudnia 2016 przez gierasinskiw

JUŻ NAPRAWIONE

obrazWyczysc to jest funkcja działająca na tablicy obraz która przyjmuje 5 argumentów(int j,int i,int x,int y,char a). Pierwsze 4 to określają gdzie zamieniać a ostatni na co. Funkcja na razie działa nieprawidłowo.

#include <iostream>

using namespace std;

char obraz[80][24];

//obraz
void obrazZamien(int j, int x, int i, int y, char a){
// szerokość początkowa j
// szerokość końcowa x
// wysokość początkowa i
// wysokość końcowa y
	int j2=j;
	while(i<y){
		while(j2<x){
			obraz[i][j2] = a;
			j2++;
		}
		i++;
		j2=j;
	}
}
void obrazWypisz(int x, int y){
	for(int i=0;i<y;i++){
		for(int j=0;j<x;j++){
  			cout << obraz[i][j];
		}
	}
}  

int main()
{
	setlocale(LC_ALL,"");
    obrazZamien(0,80,0,24,' ');
    obrazWypisz(80,24);
	system("Pause");
    return 0;
}

void obrazWypisz(int x, int y){
	for(int i=0;i<y;i++){
		for(int j=0;j<x;j++){
  			cout << obraz[i][j];
		}
	}
}  

int main()
{
	setlocale(LC_ALL,"");
        obrazZamien(0,0,80,24,' ');
        obrazZamien(0,0,60,24,'X');
        obrazWypisz(80,24);
	system("Pause");
    return 0;
}

1 odpowiedź

0 głosów
odpowiedź 24 grudnia 2016 przez playerony Pasjonat (15,240 p.)
edycja 24 grudnia 2016 przez playerony
Yyyy tak więc no tak. No wg. tego co napisałes na górze to wystarczy zrobić jednego if'a tak więc nie wiem w czym jest problem.
komentarz 24 grudnia 2016 przez gierasinskiw Użytkownik (510 p.)
Mam funkcje obrazWyczysc która ma zamieniac wartosci na spacje ale nie dziala wlaściwie bo powinna przypisać spacje wszystkim elementom oprócz dwóch pierwszych elementow w każdej nowej lini.
komentarz 24 grudnia 2016 przez playerony Pasjonat (15,240 p.)

Jakoś tak?

void obrazWyczysc(int j, int i, int x, int y){
// szerokoœæ pocz¹tkowa j
// szerokoœæ koñcowa x
// wysokoœæ pocz¹tkowa i
// wysokoœæ koñcowa y
    int j2=j;
    for(int i=0 ; i<y ; i++)
        for(int k=0 ; k<x ; k++)
            if(k>1)
                obraz[i][k] = ' ';
}

 

komentarz 24 grudnia 2016 przez gierasinskiw Użytkownik (510 p.)
obrazWyczysc to jest funkcja działająca na tablicy obraz która przyjmuje 4 argumenty(j,i,x,y) które informują ją w jakim obszarze zamieniać na spacje.

Wywołałem ją tak: obrazWyczysc(2,0,79,24);. I dla tego przypadku działa niewłaściwie. Nie mam pojęcia dlaczego.

Podobne pytania

0 głosów
1 odpowiedź 212 wizyt
0 głosów
1 odpowiedź 144 wizyt
+1 głos
2 odpowiedzi 932 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...