Flimzes Skrevet 13. august 2010 Del Skrevet 13. august 2010 (endret) Hei! Skal snart ha tentamen, og har i den anledning gått gjennom tidligere tentamener, men blir stuck på en oppgave. Tentamen her: http://aass.oru.se/~tpy/c/2009-2010-p2/tentor/thomas/tenta-2010-05-28/tenta-2010-05-28.html Fasit her: http://aass.oru.se/~tpy/c/2009-2010-p2/tentor/thomas/tenta-2010-05-28/losningar-2010-05-28.html Det gjelder oppgave 6 Koden jeg har laget så langt gir meg ../src/oving1.c:13: error: expected ‘)’ before ‘*’ token, og jeg klarer ikke å finne en løsning på det, vi er flere som sitter her og ikke finner svaret. Det er skrevet i ecplise, med default header lengst opp. /* ============================================================================ Name : oving1.c Author : Michael Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */ #include <stdio.h> void las_radio(radio *rp) { printf("Ange radions effekt: "); scanf("%f", &rp->effekt); printf("Ange frekvens: "); scanf("%f", &rp->frekvens); printf("Ange känslighet: "); scanf("%f", &rp->kanslighet); printf("Ange latitud: "); scanf("%f", &rp->latitude); printf("Ange longitud: "); scanf("%f", &rp->longtitude); } int main() { struct radio { double effekt; double frekvens; double kanslighet; double latitude; double longtitude; }; struct radio radio2; las_radio(&radio2); struct radio r1; //Kan også skrives = {1.5, 75.95, 0.13, 59.25393, 15.24727} r1.effekt = 1.5; r1.frekvens = 75.95; r1.kanslighet = 0.13; r1.latitude = 59.25393; r1.longtitude = 15.24727; printf("Effekt: %.1f W", r1.effekt); printf("\nFrekvens: %.2f MHz", r1.frekvens); printf("\nKänslighet: %.2f", r1.kanslighet); printf("\nPosition: lat %.5f", r1.latitude); printf(", long: %.5f", r1.longtitude); printf("Effekt: %.1f W", r1.effekt); } EDIT: Problemet var en feilplassering av struct. Men har nytt problem: Når jeg har doubles i structen, så nekter den å ta i mot info, men om jeg skifter til float fungerer det. Endret 13. august 2010 av Flimzes Lenke til kommentar
Tapped Skrevet 13. august 2010 Del Skrevet 13. august 2010 (endret) /* ============================================================================ Name : oving1.c Author : Michael Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */ #include <stdio.h> void las_radio(radio *rp) { printf("Ange radions effekt: "); scanf("%f", &rp->effekt); printf("Ange frekvens: "); scanf("%f", &rp->frekvens); printf("Ange känslighet: "); scanf("%f", &rp->kanslighet); printf("Ange latitud: "); scanf("%f", &rp->latitude); printf("Ange longitud: "); scanf("%f", &rp->longtitude); } int main() { struct radio { double effekt; double frekvens; double kanslighet; double latitude; double longtitude; }; struct radio radio2; las_radio(&radio2); struct radio r1; //Kan også skrives = {1.5, 75.95, 0.13, 59.25393, 15.24727} r1.effekt = 1.5; r1.frekvens = 75.95; r1.kanslighet = 0.13; r1.latitude = 59.25393; r1.longtitude = 15.24727; printf("Effekt: %.1f W", r1.effekt); printf("\nFrekvens: %.2f MHz", r1.frekvens); printf("\nKänslighet: %.2f", r1.kanslighet); printf("\nPosition: lat %.5f", r1.latitude); printf(", long: %.5f", r1.longtitude); printf("Effekt: %.1f W", r1.effekt); } EDIT: Problemet var en feilplassering av struct. Men har nytt problem: Når jeg har doubles i structen, så nekter den å ta i mot info, men om jeg skifter til float fungerer det. Jeg fant feilen, feilen er at du bare registrer floats med %f. Hvis du har lyst til doubles så må du bruke %lf. Jeg fant også en del "warnings". Du kan få bort advarslene ved å bruke scanf_s() istedenfor scanf(). -Tapped Endret 13. august 2010 av Tapped Lenke til kommentar
LostOblivion Skrevet 3. september 2010 Del Skrevet 3. september 2010 Han kan ikke bruke scan_f. Han sitter i Eclipse, ikke VS. Lenke til kommentar
GeirGrusom Skrevet 4. september 2010 Del Skrevet 4. september 2010 (endret) Jeg fant feilen, feilen er at du bare registrer floats med %f. Hvis du har lyst til doubles så må du bruke %lf. Jeg fant også en del "warnings". Du kan få bort advarslene ved å bruke scanf_s() istedenfor scanf(). -Tapped Det er Visual C++ extensions for å hindre buffer overflow og lignende programmeringstekniske feil. Bare overse dem, ettersom de kun gjelder Visual C++. Endret 4. september 2010 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå