Tämä on mainospaikka (näillä pidetään sivusto pystyssä)

Löytyykö C++-osaajia?

  • Viestiketjun aloittaja Viestiketjun aloittaja Kojo
  • Aloituspäivämäärä Aloituspäivämäärä

Kojo

KonsoliFIN Alumni
Auttaisitteko nyyppää saamaan koodin valmiiksi, tai edes jäljille. :o Jäi muutama lähipäivä väliin ja sen takia hieman tökkii, enkä keksi miten edetä.

Tähän pitäisi lisätä ehto että luvut eivät saa olla negatiivisia.

Kiitoksia.
Koodi:
// Ohjelma kysyy viisi lukua taulukkoon, laskee niiden tulon.

#include <stdio.h>
#define Taulukko 5     //määritellään vakioksi taulukon alkioiden yläraja

void main()
{
	// Muuttujat
   int luvut [Taulukko], laskuri, tulo;     

	// Ohjeet käyttäjälle
   printf ("Ohjelmassa kysytään %d lukua yksitellen taulukkoon" , Taulukko);
   

   // Kysytään luvut ja kasvatetaan laskuria yhdellä
  for (laskuri=0 ; laskuri<Taulukko ; laskuri++) 

      {
	// Tulostetaan "Anna taulukkoon luvut
      printf ("\nAnna taulukon %d. luku:  " , laskuri+1);

	// Luetaan annetut luvut
      scanf ("%d" , &luvut[laskuri] );
      }

	
  //lasketaan lukujen tulo
  tulo=1;
  for(laskuri=0;laskuri<Taulukko;laskuri++)
  
     tulo=tulo*luvut[laskuri];
  

  //tulostetaan syötettyjen lukujen tulo
  printf("Lukujen tulo on %i\n\n ",tulo);
   
}
 
Vastaus: Löytyykö C++-osaajia?

Lue käyttäjän inputti väliaikaiseen int -muuttujaan, ja tarkista että arvo >= 0.

Jos arvo on positiivinen niin lisää se taulukkoon ja kasvata laskuria.

Jos ei, niin kitise käyttäjälle.
 
Vastaus: Löytyykö C++-osaajia?

Koodi:
// Ohjelma kysyy viisi lukua taulukkoon, laskee niiden tulon.

#include <stdio.h>
#define Taulukko 5     //määritellään vakioksi taulukon alkioiden yläraja

int main()
{
  // Muuttujat
  int luvut [Taulukko], laskuri, tulo;     

  // Ohjeet käyttäjälle
  printf ("Ohjelmassa kysytään %d lukua yksitellen taulukkoon" , Taulukko);
   
  laskuri = 0;
  // Kysytään luvut ja kasvatetaan laskuria yhdellä
  while(laskuri < Taulukko)
  {
    // Tulostetaan "Anna taulukkoon luvut
    printf ("\nAnna taulukon %d. luku:  " , laskuri+1);
    // Luetaan annetut luvut
    scanf ("%d" , &luvut[laskuri] );
    if(luvut[laskuri] >= 0) laskuri++;
  }
	
  //lasketaan lukujen tulo
  tulo=1;
  for(laskuri=0;laskuri<Taulukko;laskuri++)
  
     tulo=tulo*luvut[laskuri];
  

  //tulostetaan syötettyjen lukujen tulo
  printf("Lukujen tulo on %i\n\n ",tulo);
 
  return 0;  
}

Muutin for-loopin while loopiks. Mielipideasia mutta imo lopputulos nätimpää näin.

Edit: Niin siis tuossahan ei oteta sitten kantaa jos käyttäjä menee tunkemaan jotain ihan muuta kuin inttejä, jos tunget tuossa nyt esim. kirjaimia niin taitaa jäädä vähän loputtomaan looppiin.
 
Vastaus: Löytyykö C++-osaajia?

Edit: Niin siis tuossahan ei oteta sitten kantaa jos käyttäjä menee tunkemaan jotain ihan muuta kuin inttejä, jos tunget tuossa nyt esim. kirjaimia niin taitaa jäädä vähän loputtomaan looppiin.
Juu, näin on. Pitää ottaa se seuraavaksi käsittelyyn. :)

Kiitoksia molemmille tuosta. Taas se oli niin pienestä kiinni että oikein harmittaa kun ei itse tajunnut. :D
 
Viimeksi muokannut moderaattori:
Ylös Bottom