Hjälp med att stega igenom en array!

Trädvy Permalänk
Medlem
Plats
Östersund
Registrerad
Jul 2008

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

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

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

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

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Okt 2007

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.

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

Trädvy Permalänk
Medlem
Plats
Östersund
Registrerad
Jul 2008

Oj, vilken tabbe

jag programmerar i C++

Trädvy Permalänk
Medlem
Plats
Östersund
Registrerad
Jul 2008

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?

Trädvy Permalänk
Medlem
Plats
Laholm
Registrerad
Okt 2005

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.

ASP.NET programmerare i C#
Twitter: http://www.twitter.com/hagbarddenstore

Trädvy Permalänk
Medlem
Plats
Uddevalla
Registrerad
Okt 2001

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

Macbook Air 13" (2012)

Trädvy Permalänk
Medlem
Plats
Östersund
Registrerad
Jul 2008

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?

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2007
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.