Moi!
Osaako kukaan auttaa tässä ongelmassa: Eli tuon pitäis tehdä niin, että
"tiedostossa "luvut.s" on 4 kokonaislukua. Luvut ovat tiedoston ensimmäisellä rivillä välilyönnein eroteltuna. Tee ohjelma, joka lukee tiedostosta kokonaisluvut ja laskee näiden summan. Lopuksi ohjelma tulostaa sekä luvut että summan näytölle."
Koodini ei toimi oikein. Missä pirussa on vika?
#include <stdio.h> int main() int x, y, summa; { FILE *tied_kahv; float luku1, luku2, luku3, luku4; if((tied_kahv = fopen("luvut.s", "r")) == NULL) { printf("Tiedostoa ei löydetty!"); return 0; } else { fscanf(tied_kahv, "%f %f %f %f ", &luku1, &luku2, &luku3, &luku4); fclose(tied_kahv); printf("Tiedostosta luvut.s löytyneet luvut: \n %.f, %.f, %.f ja %.f", luku1, luku2, luku3, luku4); summa=x+y; printf("Lukujen summa: %f + %f = %f", x, y, &summa); } return 0; }
Mod. edit: kooditagit
1. Laita main()-funktion jälkeen lohkon aloittava aaltosulje.
2. Muuta summa float-tyyppiseksi ja poista muuttujien x ja y määrittelyt.
3. Kirjoita/korvaa loppuun rivit
summa=luku1+luku2+luku3+luku4;
ja
printf("Lukujen summa: %.f + %.f + %.f + %.f = %.f\n", luku1, luku2, luku3, luku4, summa);
Tuo kyllä kuulostaa täysin koulutehtävältä. Koulutehtävät pitää tehdä ite...
Näin on. Eihän siinä mitään opi, jos kysyy suoraan muilta, miten homma toimii. Ja jos ei halua oppia, niin sitten ei kannata koulussakaan ohjelmointia valita. Ohjelmoinnissa pitää oppia pidemmän päälle miettimään itse.
Tuossa koodissa on nyt kuitenkin vikana ainakin se, että int main():n jälkeen pitää tulla { ennen muuta koodia.
Ja Ahvenisto, lue muuten heti seuraavaksi keskustelun ohjeet ja opettele käyttämään kooditageja.
Samaa mieltä. Itse pitäisi tehdä jos vaan osaa. Päätinpä kuitenkin vastata koska uskoisin jokaisen järkevän ihmisen kysyvän apua vasta sitten kun on miettinyt ongelmaa kauan eikä ole päässyt oikeaan lopputulokseen. Toisaalta olen huomannut itsekin oppivani hyvin myös silloin kun olen miettinyt ongelmaa ja sitten tutkinut esimerkkiratkaisua huolella.
hunajavohveli kirjoitti:
Tuossa koodissa on nyt kuitenkin vikana ainakin se, että int main():n jälkeen pitää tulla { ennen muuta koodia.
Tässä tapauksessa kyllä, mutta tuo muistuttaa hyvin paljon vanhaa C-tyyliä, mikä vieläkin menee kääntäjistä läpi. Sitä ei voi kuitenkaan suositella enää kenellekään.
#include <stdio.h> int main(argc, argv) int argc; char ** argv; { printf("c = %d\n",argc); return 0; }
Aihe on jo aika vanha, joten et voi enää vastata siihen.