Gå til innhold

Skoleoppgave som driver meg gal!


Anbefalte innlegg

Hei,

 

Jeg har fått en oppgave som jeg må løse - og jeg vet ikke engang hvor jeg skal begynne. Har gjort alle de andre deloppgavene; men denne får jeg bare ikke til!

 

Oppgave 2:

Skriv et program som skriver ut følgende:

*

*****

*********

*************

*********

*****

*

 

På arket er de formet som en "stjerne" i mangel på et bedre ord.

Lenke til kommentar
Videoannonse
Annonse

#include <iostream>

using std::cout;
using std::endl;

int main (int argc, char **argv)
{
  cout << "*" << endl;
  cout << "*****" << endl;
  cout << "*********" << endl;
  cout << "*************" << endl;
  cout << "*********" << endl;
  cout << "*****" << endl;
  cout << "*" << endl;
}

:D :D :D

 

Eventuelt kan du løse det på en mer elegant måte med noen for-løkker. :)

Lenke til kommentar

Jeg blander sammen en hel haug av ulike kommandoer; og det ender med at intet virker.

 

Fikk til de første oppgavene etter noen timer; men jeg kan ikke si at jeg har teken på det.

 

Uansett. Takk alfred! Skal ikke levere inn ditt forslag kliss identisk. Vedder penger på at Grusomme-Geir, egentlig heter Helge, og tilfeldigvis er lærer på HIVE!

Lenke til kommentar

Jeg blander sammen en hel haug av ulike kommandoer; og det ender med at intet virker.

 

Fikk til de første oppgavene etter noen timer; men jeg kan ikke si at jeg har teken på det.

 

Uansett. Takk alfred! Skal ikke levere inn ditt forslag kliss identisk. Vedder penger på at Grusomme-Geir, egentlig heter Helge, og tilfeldigvis er lærer på HIVE!

Du får gi meg hundre kroner på skolen i morgen. Jeg går tredje klasse nå. Jeg var også fadder for 11 stykker fra dataklassen.

 

Opggaven er for C, ikke C++, og etter det jeg husker kan du ikke bruke mer enn en stjerne eller et kryss i en printf.

 

Du kan derfor enkelt løse den slik:

 

#include <stdio.h>

const char* msg = 
"\
  *\n\
 ***\n\
*****\n\
*******\n\
*****\n\
 ***\n\
  *\n";

int main(int argc, char** argv)
{
 printf("%s", msg);
 return 0;
}

Endret av GeirGrusom
Lenke til kommentar

Som The Maister nevner så er denne oppgaven ikke om og hardkode en stjerne form.

Handler om et par for loops,stjerner har et visst mønster 1,5,9,13,9...

Da blir for loopen sånn opp til 13,for (int i = 1; i < 14; i+=4)

Vil ikke skrive den ferdig i C++ p.g.a skoleoppgave skriver den i python,da kan den skrive om til C++ rimlig greit.

for asterics  in range(1,13,4):
   print '*' * (asterics)
for asterics in range(13,0,-4):
   print '*' * (asterics)

Endret av SNIPPSAT
Lenke til kommentar

Løsningsforslaget var uten løkker da jeg tok dette kurset. Husk at dette er det første programmeringskurset (5 stdp) de tar, og forventningene er veldig lave. Jeg leverte en besvarelse som brukte løkker, men når jeg så løsningsforslaget, så var det egentlig bare bortkastet tid.

Endret av GeirGrusom
Lenke til kommentar

#include <stdio.h>

int main(void) {
   for (int i = 0; i < 7; i++) printf("%*c%s\n", i < 4 ? 7-i : i+1, ' ', "*************" + (i < 4 ? (12-i*2) : (i*2)));
   return 0;
}

 

Output:

      *
     ***
    *****
   *******
    *****
     ***
      *

 

Høhø. Skikkelig lesbart det der ja ;)

 

Litt mindre lesbar printf:

printf("%*c%s\n", i < 4 ? 7-i : i+1, ' ', &(i < 4 ? (12-i*2) : (i*2))["*************"]);

Endret av TheMaister
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...