b) 3
c) 2
a = 5 b = 3 x = 6.0 y = 3.5 z = 1.0
/* uppgift-3.c */ #include <stdio.h> #include <math.h> #define PI 3.1415926535 int main(void) { double inkomst; printf("Ange årsinkomsten: "); scanf("%lf", &inkomst); while (inkomst != 0) { double x = inkomst; double skatt = x/2 + 1.0/2*sin(x/PI)*sqrt(x+1000); printf("Skatt: %f\n", skatt); printf("Ange årsinkomsten: "); scanf("%lf", &inkomst); } return 0; }
/* uppgift-4.c */ #include <stdio.h> int main(void) { int forsta, sista, tal, summa = 0; printf("Ge första talet: "); scanf("%d", &forsta); printf("Ge sista talet: "); scanf("%d", &sista); if (forsta > sista) { int temp = forsta; forsta = sista; sista = temp; } for (tal = forsta; tal <= sista; ++tal) { printf("%d", tal); if (tal != sista) printf(" + "); summa += tal; } printf(" = %d\n", summa); return 0; }
/* uppgift-5.c */ #include <stdio.h> int main(void) { double a[5]; double procent; printf("Ge fem reella tal: "); for (int i = 0; i < 5; i++) scanf("%lf", &a[i]); printf("Ge ökning i procent: "); scanf("%lf", &procent); for (int i = 0; i < 5; i++) a[i] *= (1 + procent/100); printf("Ny array:"); for (int i = 0; i < 5; i++) printf(" %.2f", a[i]); printf("\n"); return 0; }
b)void rita_fyrkant(int r, int k) { for (int i = 0; i < r; ++i) { for (int j = 0; j < k; ++j) { printf("*"); } printf("\n"); } }
int main(void) { int r, k; printf("Antal rader: "); scanf("%d", &r); printf("Antal kolumner: "); scanf("%d", &k); rita_fyrkant(r, k); return 0; }
/* uppgift-7.c */ #include <stdio.h> #define MAX_PLANETNAMN 20 #define MAX_BESKRIVNING 30 struct Utryckning { char datum[10 + 1]; char tid[5 + 1]; char planet[MAX_PLANETNAMN + 1]; char beskrivning[MAX_BESKRIVNING + 1]; }; struct Utryckning u = { "2210-08-12", "18:04", "Saturnus", "Fortkörning" }; void visa_utryckning(struct Utryckning* up) { printf("Datum: %s\n", up->datum); printf("Tid: %s\n", up->tid); printf("Plats: %s\n", up->planet); printf("Angående: %s\n", up->beskrivning); } void las_utryckning(struct Utryckning* up) { printf("Datum: "); scanf("%s", up->datum); printf("Tid: "); scanf("%s", up->tid); printf("Plats: "); scanf("%s", up->planet); /* Kasta radslutstecknet, så gets kan läsa nästa rad */ while (getchar() != '\n') ; printf("Angående: "); gets(up->beskrivning); /* Jaja, vi vet! */ } int main(void) { struct Utryckning u1, u2; printf("Mata in två utryckningar!\n"); las_utryckning(&u1); las_utryckning(&u2); printf("De två utryckningarna:\n"); visa_utryckning(&u1); visa_utryckning(&u2); return 0; }
/* uppgift-8.c */ #include <stdlib.h> #include <stdio.h> // Definitioner av struct Utryckning mm bortklippta int main(void) { FILE *f; struct Utryckning u; printf("Mata in en utryckning!\n"); las_utryckning(&u); f = fopen("utryckningar.txt", "a"); if (f == NULL) { fprintf(stderr, "Kunde inte öppna filen med utryckningar!\n"); exit(EXIT_FAILURE); } fprintf(f, "%s %s %s %s\n", u.datum, u.tid, u.planet, u.beskrivning); fclose(f); return 0; }
/* uppgift-9.c */ #include <stdlib.h> #include <stdio.h> #include <string.h> #define MAX_PLANETNAMN 20 struct Planet { char namn[MAX_PLANETNAMN + 1]; int antal; }; int main(void) { FILE *f; char sokt_planet[MAX_PLANETNAMN + 1]; char last_planet[MAX_PLANETNAMN + 1]; int antal_utryckningar = 0; printf("Ange namnet på en planet: "); scanf("%s", sokt_planet); f = fopen("utryckningar.txt", "r"); if (f == NULL) { fprintf(stderr, "Kunde inte öppna filen med utryckningar!\n"); exit(EXIT_FAILURE); } while (fscanf(f, "%*s %*s %s %*[^\n]", last_planet) != EOF) if (strcmp(sokt_planet, last_planet) == 0) ++antal_utryckningar; fclose(f); printf("Antal utryckningar till %s: %d\n", sokt_planet, antal_utryckningar); return 0; }