Hjälp med att stega igenom en array!

Permalänk
Medlem

Hjälp med att stega igenom en array!

Tjenare!

Är väl en nybörjare på programmering och behöver hjälp med en uppgift, den lyder:

"Skapa en array av typen char, tilldela er array bokstäverna P, r, o, v direkt "
----------------------------------------------------------------------------------------------
char a[4]={'P', 'R', 'O', 'V'}

så det kan jag!
----------------------------------------------------------------------------------------------

"Med ledning av din array skall du nu skriva koden som skriver ut innehållet i arrayen och sedan kollar om bokstaven P finns i arrayen och i det fallet byter ut den mot bokstaven G. och därefter skriver ut innehållet i arrayen igen på skärmen. Resultatet ska se ut såhär:

Prov

Grov
----------------------------------------------------------------------------------------------

Jag ska nu stega igenom arrayen med hjälp av en for-loop och sedan kolla om bokstaven P finns, då ska jag byta den mot G. Står helt still i huvudet!

Hjälp nån?

Tackar för förhand

Permalänk

Du kan ju börja att skriva vad du programmerar i för språk?

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

for ( int i=0; i<4; i++){
if ( char a[i]==P)
char a[i]=G
}

Eller något åt det hållet borde fungera.

Visa signatur

i5 750@3,6GHz(vatten), 4GB DDR3, HD6870@1000/1100(vatten), 1TB, Proton AM10 + Dynavoice Challenger S5
Asus U36SD
FreeNAS - Intel G620, MSIH67MA-E35, 8GB DDR3, 5x2TB RAIDZ, Intel PRO 1000GT Desktop

Permalänk
Medlem

Oj, vilken tabbe

jag programmerar i C++

Permalänk
Medlem

Skrev såhär :
---------------------------------------------------
char a[4]={'P','r','o','v'};
string b,g;

for (int i=0; i<4; i++)
b+=a[i];

cout<<b<<endl<<endl;

for(int k=0; k<4; k++)
{
if(a[k]=='P')
a[k]='G';
g+=a[k];
}

cout<<g;
-------------------------------------------------------

Nåt som är sjukt onödigt eller dylikt?

Permalänk

Ja.

int main(char ** argv) { // Måste ha avslutande \0 för att markera slutet på strängen. char* a = {'P', 'r', 'o', 'v', '\0'}; std::cout << a << std::end << std::endl; for(int i = 0; i < strlen(a); i++) { if(*(a + i) == 'P') { *(a + i) = 'G'; } } std::cout << a << std::endl; }

Nu är det länge sen jag skrev något alls i C++, men har för mig att det är sådär. Reserverar mig för syntaxfel.

Permalänk
Medlem

Behöver du ändra i arrayen eller räcker det att skriva ut med en gång?

Visa signatur

Macbook Air 13" (2012)

Permalänk
Medlem

Tack för hjälpen! Löste sig tillslut

Har en ny fråga angående arrayer då jag håller på med ett lottospel. Man ska få skriva in hur många rader man vill ha och då ska rader med 7 olika nummer skapas.

Ex på utskrift:

Antal rader?
2

32 21 5 6 7 8 17
12 45 32 23 11 23 1

Detta har jag kommit fram till hittils:

srand( time(NULL)); int rader, a=0, k=0; cout<<"Hur manga rader 'o'nskas?"<<endl; cin>>rader; while(a<rader) { int b; for(int k=0; k<7; k++) { b=rand()%35+1; cout<<b<<" "; } cout<<endl; a++; }

Jag får nu rätt antal siffror per rad och rätt antal rader. Men siffrorna på samma rad får inte vara samma och de kan dom bli nu.. Antar att man måste stega igenom siffrorna och lägga dit nån ifsats? Jag har svårt att förstå detta med arrayer och är väldigt tacksam för hjälp

Min fråga är alltså: Hur gör jag så att siffrorna inte kan bli samma på samma rad?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av pedepoe

Jag får nu rätt antal siffror per rad och rätt antal rader. Men siffrorna på samma rad får inte vara samma och de kan dom bli nu.. Antar att man måste stega igenom siffrorna och lägga dit nån ifsats? Jag har svårt att förstå detta med arrayer och är väldigt tacksam för hjälp

Min fråga är alltså: Hur gör jag så att siffrorna inte kan bli samma på samma rad?

Jo, precis. Du måste spara siffrorna du redan slumpat fram, förslagsvis i en array. Sen får du kontrollera att nya siffror inte redan finns i arrayen. Det går att göra med en for-sats som du gjort nu, men det är nog bättre att använda en while-sats istället, och gå ur den när du fått ihop tillräckligt många siffror. Med en for-sats så måste man ta ett steg bakåt i iterationen om siffran redan fanns, vilket kan bli lite fult.