Keskiarvo

Mun pitäis tehä koulua varten seuraavanlainen ohjelma:

"Tee ohjelma, joka laskee todistuksesi keskiarvon. Käyttäjältä kysytään numeroiden määrä että numerot."

Tuohon myös pitäisi saada while-silmukkalauseke mahtumaan jonnekkin.

Oon miettiny tota koulus varmaan kaks tuntia, enkä jaksais kysyä sitä opelta, koska mun mielestä se ei osaa opettaa.
Osaisko kukaan koodata tollasta ohjelmaa mulle?

Oon kyl tehny ohjelmaan alkua, joka näyttää tältä:

//Keskiarvo

#include
#include
#include

int main(void)
{
   int numero;
   int n;
   int karvo;
   
   

      cout
91951
Äänestä

Muut lukivat myös

Vastaukset 9

Vanhimmat

Ensinnäkin while-silmukkaan täytyy rakentaa mekanismi jolla sen saa loppumaan. Nyt tuo jää ikuiseen looppiin.

Siis kun kysyt montako numeroa niin silmukkaan laitat toisen muuttuujan (nollaus ensin) jota kasvatat aina yhdellä per kierros ja lopetusehdoksi että se on suurempi kuin numeroiden määrä.

Äänestä

Eikös tuon whilen lopetusehtona pitäisi olla numero, eikä n ja koko lauseesta kannattaisi varmaan tehdä do-lause, tyyliin:
do {
// numeroiden lukemista ja niiden yhteenlaskua
} while ( numero );

Ja sitten kannattaisi varmaan tehdä uusi int-tyyppinen muuttuja, johon tallennnetaan annettujen numeroiden summa, tyylliin:
numerot = numerot numero;

Äänestä
  • Niin juu ja eihä tuota karvo:a lueta käyttäjältä vaan sehän pitää laskea annetuista tiedoista.

    Äänestä

Siellä silmukan sisällä pitäisi saada lisättyä numerot summa-muuttujaan. esim. "summa = numero;"
Sitten se karvo on harvoin int. Silmukan ulkopuolella jaetaan vasta summa / n.

Jos käytät Dev-C kääntäjää, niin sehän laittaa automaattisesti kirjastot, pääohjelmametodin ja ohjelman lopetuksen. Koodin laitat pääohjelman sulkujen sisään.
Eli File / New / Project / Console Application / C Project /(Kirjoita projektisi nimi kenttään)/ OK.
Save tallenna johonkin kansioosi.
Kun olet tallentanut projektisi, pitäisi avautua tällainen näkymä, johon koodin kirjoitat.



#include
#include

using namespace std;

int main(int argc, char *argv[])
{

TÄHÄN KIRJOITAT KOODISI

system("PAUSE");
return EXIT_SUCCESS;
}

Äänestä

Jotenkin näinkö se sitten pitäis tehdä?

//Keskiarvo

#include

int main(void)
{
int numero;
int n;
float karvo;
int summa;
int j=0;

cout

Äänestä
  • Heitä nyt toi cin>>karvo; tuolta pois. Eihän sitä karvoa käyttäjältä kysellä vaan lasketaan itse.

    ei näin --> int summa;
    vaan näin --> int summa = 0;

    Oikeastaan nuo kaikki muuttujat kannattaisi alustaa silloin kun ne määritellää.

    Äänestä

#include
#include

using namespace std;

int main(void)
{
double n;
double numero;
double k_arvo;
short int a = 0;
double summa = 0;

vector numerot;

std::cout > n;

while (a < n){
std::cout > numero;

numerot.push_back(double( numero ));

summa = numero;
a ;
system("CLS");
}

sort(numerot.begin(), numerot.end());

k_arvo = (summa / n);

std::cout

Äänestä
  • #include

    float lukujen_maara, jaettavat, numero, muisti_numero = 0, vastaus;

    int main(void) {
    printf("Ilmoita kuinka monen luvun keskiarvon lasket \n");
    scanf("%f", &lukujen_maara);
    while (muisti_numero < lukujen_maara){
    printf("Anna luku \n");
    scanf("%f", &numero);
    jaettavat = jaettavat + numero;
    muisti_numero = muisti_numero + 1;
    }
    vastaus = jaettavat / lukujen_maara;

    printf("Lukujen keskiarvo on %f.", vastaus);

    system("PAUSE");

    return 0;
    }

    Äänestä

  • puhdasta C:tä kirjoitti:

    #include

    float lukujen_maara, jaettavat, numero, muisti_numero = 0, vastaus;

    int main(void) {
    printf("Ilmoita kuinka monen luvun keskiarvon lasket \n");
    scanf("%f", &lukujen_maara);
    while (muisti_numero < lukujen_maara){
    printf("Anna luku \n");
    scanf("%f", &numero);
    jaettavat = jaettavat + numero;
    muisti_numero = muisti_numero + 1;
    }
    vastaus = jaettavat / lukujen_maara;

    printf("Lukujen keskiarvo on %f.", vastaus);

    system("PAUSE");

    return 0;
    }

    Niin siis mitäs vikaa c kielessä on kun kaveri oli sitä kerran käyttänyt. Missään kohtaa tehtävänannossa en nähnyt kohtaa että pitää olla puhdasta c:ä. Toisaalta kaverin suurin ongelma oli kielen syntaksi.

    Äänestä

Kommentoi aloitusta


NeeNee kirjoitti:

Mun pitäis tehä koulua varten seuraavanlainen ohjelma:

"Tee ohjelma, joka laskee todistuksesi keskiarvon. Käyttäjältä kysytään numeroiden määrä että numerot."

Tuohon myös pitäisi saada while-silmukkalauseke mahtumaan jonnekkin.

Oon miettiny tota koulus varmaan kaks tuntia, enkä jaksais kysyä sitä opelta, koska mun mielestä se ei osaa opettaa.
Osaisko kukaan koodata tollasta ohjelmaa mulle?

Oon kyl tehny ohjelmaan alkua, joka näyttää tältä:

//Keskiarvo

#include
#include
#include

int main(void)
{
   int numero;
   int n;
   int karvo;
   
   

      cout

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu