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
"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
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ä.
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;
Niin juu ja eihä tuota karvo:a lueta käyttäjältä vaan sehän pitää laskea annetuista tiedoista.
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;
}
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
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ää.
#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
#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.