Löytyiskö joltain apua tällaiseen tehtävään, olen saanut jonkinlaisen koodin kasaan jo mutta jotain on pielessä kun ei täydellisesti vielä toimi... kyseessä siis c-kieli.
Tee ohjelma, joka kysyy oppilaiden koearvosanoja (kokonaisluvut 4-10 käytössä) ja laskee syötettyjen arvosanojen keskiarvon. Ohjelman tulee ottaa vastaan arvosanoja, kunnes arvosanojen syöttö lopetetaan negatiivisella kokonaisluvulla. Lopuksi ohjelma tulostaa arvosanojen lukumäärän sekä lasketun keskiarvon, joka tulostetaan kahden desimaalin tarkkuudella.
Vihje:
Voit laatia ohjelman joko while- tai do...while-lauseen avulla.
Esimerkkitulostus
Ohjelma laskee syötettyjen arvosanojen keskiarvon.
Lopetus negatiivisella kokonaisluvulla.
Anna arvosana (4-10):4
Anna arvosana (4-10):5
Anna arvosana (4-10):6
Anna arvosana (4-10):9
Anna arvosana (4-10):7
Anna arvosana (4-10):-1
Ohjelmaan syötetty 5 arvosanaa.
Arvosanojen keskiarvo: 6.20
jelppiä tehtävään (c-kieli)
25
6340
Vastaukset
- niin ihmetellään yhdessä
Vaikea on muuten sanoa mikä on vialla.
Voit käyttää esim. http://paste.servut.us/ - teuro
Niin kierro siis missä ongelma ilmenee. Ilman tuota tietoa on hiukan hankala lähteä neuvomaan. Todennäköisesti ongelma on kuitenkin jossakin muuttujien määrityksissä.
Sinulla on varmaan jotakin tällaista:
//Slmukka anteeksi kirjoitan c en muista c:n syntaksia
1. #include
using namespace std;
int main(){
int kpl;
double syote;
while(syote > 0){
cout > syote;
if(syote < 0)
break;
}
else{
summa = syote;
kpl ;
}
}
keskiarvo = summa / kpl;
}
auttaako yhtään tämä on kirjoitettu työpaikalla ilman kääntäjään, mutta jotenkin noin voisi mennä?- Ei edes ollut yrittänyt
Huijareita...
- bar
Miksi edes olet ottanut C-kielen kurssin, jos et viitsi etkä halua opetella. Tämä on täysin perus juttu. :/ Epäilisin, että tämä olisi perusrakenteiden käyttöharjoitus.
Pseudokoodina tekisin näin:
(pääfunktio, muuttujanesittelyt, alun outputit)
WHILE syöte > 0 DO
WRITE_OUPUT("Anna arvosana (4-10);
READ_INPUT(syote);
summa = syote;
lukumaara ;
ENDWHILE
keskiarvo = summa/lukumaara;
WRITE_OUTPUT("Keskiarvo on %i", keskiarvo);- napertelemista
Voit helposti tulostaa 2-desimaalin tarkkuudella pelkästään integerien avulla ilman tuota double-desimaaliluku määritystä kertomalla arvosanat vaikka 100:lla ja jaat tuloksen sitten tulostaessa desimaaliosiin erikseen.
Joo hauskoja tehtäviä varmasti ovat alkutehtävät. Kun ei mennä vielä Windowsin laitteistoajureiden koodaamiseen.
- Poseidon
Mielenkiintoinen yhteensattuma...
VIRTUAALIAMK:N C-KIELEN KURSSI 6 TEHTÄVÄ 3 MENEE TÄLLÄIN !!!
Keskiarvon laskeminen ja silmukkarakenne ohjelmointitehtävä 3/3
Tee ohjelma, joka kysyy oppilaiden koearvosanoja (kokonaisluvut 4-10 käytössä) ja laskee syötettyjen arvosanojen keskiarvon. Ohjelman tulee ottaa vastaan arvosanoja, kunnes arvosanojen syöttö lopetetaan negatiivisella kokonaisluvulla. Lopuksi ohjelma tulostaa arvosanojen lukumäärän sekä lasketun keskiarvon, joka tulostetaan kahden desimaalin tarkkuudella.
Vihje:
Voit laatia ohjelman joko while- tai do...while-lauseen avulla.
Esimerkkitulostus
Ohjelma laskee syötettyjen arvosanojen keskiarvon.
Lopetus negatiivisella kokonaisluvulla.
Anna arvosana (4-10):4
Anna arvosana (4-10):5
Anna arvosana (4-10):6
Anna arvosana (4-10):9
Anna arvosana (4-10):7
Anna arvosana (4-10):-1
Ohjelmaan syötetty 5 arvosanaa.
Arvosanojen keskiarvo: 6.20
OUCH !!! - Eerika
#include
#include
int main()
{
int luku, m = 0, s = 0, lkm = 0;
float karvo=0.00;
printf("Ohjelma laskee syötettyjen arvosanojen keskiarvon.\n");
printf("Lopetus negatiivisella kokonaisluvulla.\n");
do {
printf("Anna arvosana (4-10):");
scanf("%d", &luku);
fflush(stdin);
if(luku > 0) {
// m = luku ;
lkm = luku 1;
karvo = (float)lkm / (float)m;
} else if(luku< 0) {
printf("Ohjelmaan syötetty %d arvosanaa.\n", lkm);
printf("Arvosanojen keskiarvo: %.2f", karvo);
}
} while(luku> 0);
return 0;
}
Mikä täs kusee eniten koska laskee rivit ja niitä on 9 laskennan mukaan...
ja millä saa negatiivisen pois laskuista ?
Näyttää olevan sama tehtävä kuin mitä tässä on kyselty...- Kelpaako tämä?
#include "stdio.h"
int main(void)
{
int luvut[100];
int luku, j, i = 0;
double keskiarvo = 0;
printf("Ohjelma laskee sy\x94tettyjen arvosanojen keskiarvon\nLopetus negatiivisella kokonaisluvulla.\n");
do
{
printf("Anna arvosana (4-10):");
scanf("%d", &luku);
if(luku > 3 && luku < 11)
{
luvut[i] = luku;
i ;
}
if(luku < 0)
{
for(j = 0, luku = 0;j < i; j )
{
keskiarvo = luvut[j];
}
keskiarvo /= i;
break;
}
}while(luku > 0 && i < 100);
printf("Ohjelmaan sy\x94tetty %d arvosanaa.\nArvosanojen keskiarvo on: %.2f\n", i, keskiarvo);
return 0;
}
- Eerika
En tie helv*** johtuuko tästä blondiudesta mut en saa tota toimiin mitenkään...
Jos koitan yllä olevan mallin mukaisesti niin arvosanakysely looppi loppuu ekan numeron kyselyn jälkeen vaikka numero on positiivinen...- Se ylempi.
Mutta jos sinulla on C-kääntäjä niin voit todeta, että koodi toimii niin kuin sen pitääkin.
- Eerika
Kuinkas sitten jos oppilaita onkin enemmän kuin sata... vaikka 1000 toki voin muuttaa lukuarvon 1000:n mutta jos lähdetään oletuksesta että ei voida määritellä monenko opiskelijan arvosteluja halutaan laskea...
- ..*
#include "stdio.h"
int main(void){
int luvut;
int luku, i = 0;
double keskiarvo = 0;
printf("Ohjelma laskee sy\x94tettyjen arvosanojen keskiarvon\nLopetus negatiivisella kokonaisluvulla.\n");
do
{
printf("Anna arvosana (4-10):");
scanf("%d", &luku);
if(luku > 3 && luku < 11){
luvut = luku;
i ;
}
if(luku < 0){
keskiarvo = (luvut/i);
break;
}
}while(luku > 0);
printf("Ohjelmaan sy\x94tetty %d arvosanaa.\nArvosanojen keskiarvo on: %.2f\n", i, keskiarvo);
return 0;
}
- Eerika
Eli siis kun lukuarvo on välillä 4 ja 10 niin tämä i lisää itseensä yhden ?
Ongelma oli siinä koska en meinannut tajuta että pelkkä mitätön i osaa lisätä tuon arvon ilman mitään erikoisuutta...
Taas viisastuin vähä... - No kuitenkin
if(luku > 3 && luku < 11)
eikös toi toimi myös
if( luku >= 4 && luku- ..*
Makuasia.
- wee7os
Tässä toimiva koodi. Itse sain keskiarvoksi vain 6.00 jatkuvasti, syystä etten ymmärtänyt lisätä "yhteensä" kohtaa ensin floattiin, jolloin sen jakaminen tulosten määrällä ei anna kuin kokonaislukuja.
#include
int main() {
int arvosana = 0, lukumaara = 0;
float yhteensa = 0, keskiarvo = 0;
printf("Ohjelma laskee syötettyjen arvosanojen keskiarvon.\nLopetus negatiivisella kokonaisluvulla.\n");
do {
printf("Anna arvosana (4-10):");
scanf("%d", &arvosana);
if (arvosana > 3 && arvosana < 11) {
lukumaara ;
yhteensa = yhteensa arvosana; }
else if (arvosana < 3 || arvosana > 10) {
keskiarvo = yhteensa / lukumaara;
printf("Ohjelmaan syötetty %d arvosanaa.\nArvosanojen keskiarvo: %.2f", lukumaara, keskiarvo); }
}
while (arvosana >= 0);
return 0; }- wee7os
ja lisääthän includen jälkeen stdio.h :n vielä koska suomi24 ei sitä halunnut sisällyttää.
- koodi_mies
ei toimi 15.8.2016
- Anonyymi
#include "stdio.h"
int main(void)
{
int luku, j, n = 0;
double keskiarvo = 0;
printf("Ohjelma laskee syötettyjen arvosanojen keskiarvon.\nLopetus negatiivisella kokonaisluvulla.\n");
do
{
printf("Anna arvosana (4-10):");
scanf("%d", &luku);
if(luku > 3 && luku < 11)
{
keskiarvo = keskiarvo luku;
n ;
}
} while(luku >= 0);
printf("Ohjelmaan syötetty %d arvosanaa.\nArvosanojen keskiarvo: %.2f\n", n, keskiarvo/n);
return 0;
}- Anonyymi
Se on toimiiii
- Anonyymi
Anonyymi kirjoitti:
Se on toimiiii
Vihdoinkin tuokin ongelma on ratkaistu!
- Anonyymi
Mitä kirjain c tarkoittaa tässä yhteydessä? Onko kyseessä c-luokan kieli? Onko olemassa a- tai b-kieltä? Makkaroissahan a-luokka on parasta. Rautateillä taas ykkösluokan vaunut ovat priimaa, eivät a-luokkaa, vaan I-luokkaa. Mikä on logiikka?
Ketjusta on poistettu 1 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225144- 254328
- 272461
- 342244
- 371998
- 151908
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191587- 121521
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons211247Kerranki asiat oikein
Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa101174