b) 10
c) 10
#include <stdio.h> int main(void) { for (int i = 1; i <= 100; ++i) { if (i % 3 == 0 && i % 5 == 0) printf("FizzBuzz\n"); else if (i % 3 == 0) printf("Fizz\n"); else if (i % 5 == 0) printf("Buzz\n"); else printf("%d\n", i); } return 0; }
#include <stdlib.h> #include <stdio.h> #include <math.h> int main(void) { double x, y; printf("Ange x: "); scanf("%lf", &x); printf("Ange y: "); scanf("%lf", &y); double dividend = x - y; double divisor = (x + y) * (x + y); if (divisor == 0) { printf("x + y får inte vara noll.\n"); exit(EXIT_FAILURE); } double radicand = dividend / divisor - 1; if (radicand < 0) { printf("Uttrycket under roten får inte vara negativt.\n"); exit(EXIT_FAILURE); } double result = 3.0/4 * sqrt(radicand); printf("Resultat: %f\n", result); return EXIT_SUCCESS; }
b)double minmaxsum(double a[], int n) { double min, max; min = max = a[0]; for (int i = 1; i < n; ++i) { if (a[i] < min) min = a[i]; if (a[i] > max) max = a[i]; } return min + max; }
int main(void) { double numbers[10]; for (int i = 0; i < 10; ++i) { printf("Ange tal nummer %d: ", i + 1); scanf("%lf", &numbers[i]); } printf("Min-max-summan: %f\n", minmaxsum(numbers, 10)); return 0; }
b)double same_but_reversed(char s1[], char s2[]) { int length1 = strlen(s1); int length2 = strlen(s2); if (length1 != length2) return 0; int pos1 = 0; int pos2 = length2 - 1; while (pos1 < length1) { if (s1[pos1] != s2[pos2]) return 0; ++pos1; --pos2; } return 1; }
int main(void) { char line1[100+2], line2[100+2]; /* +2 because of '\n' and '\0' */ printf("Skriv en rad: "); fgets(line1, sizeof line1, stdin); line1[strlen(line1) - 1] = '\0'; printf("Skriv en rad till: "); fgets(line2, sizeof line2, stdin); line2[strlen(line2) - 1] = '\0'; if (same_but_reversed(line1, line2)) printf("Samma men baklänges!\n"); else printf("Inte samma men baklänges!\n"); return 0; }
b)struct Tatort { char namn[40 + 1]; int folkmangd; double latitud; double longitud; };
c)struct Tatort stora_mellosa = { "Stora Mellösa", 776, 59.21, 15.50 };
d)double genomsnittlig_folkmangd(struct Tatort tatorter[], int antal) { int summa = 0; for (int i = 0; i < antal; ++i) summa += tatorter[i].folkmangd; return (double)summa / antal; }
int main(void) { struct Tatort testorter[] = { { "Ort 1", 100, -15.2, 63.0 }, { "En ort till", 0, 115.2, -77.0 }, { "Tredje orten", 200, -15.2, 63.0 }, { "Stora fjärde orten", 1000000, 0, 0 }, { "Femte och sista stället", 1, 77, 77 }, { "En sjätte ort som inte ska tas med!", 1, 77, 77 }, }; double observerat = genomsnittlig_folkmangd(testorter, 5); // double forvantat = (100+0+200+1000000+1) / 5.0; -- blir 200060.2 printf("Resultat: %f\n", observerat); return 0; }
b)#include <stdlib.h> #include <stdio.h> int main(int argc, char *argv[]) { printf("Ange namnet på datorn eller webbplatsen: "); char namn[100 + 1]; scanf("%s", namn); printf("Ange lösenordet: "); char losenord[100 + 1]; scanf("%s", losenord); FILE *f = fopen("losenord.txt", "a"); if (f == NULL) { printf("Det gick inte att öppna filen 'losenord.txt'.\n"); exit(EXIT_FAILURE); } fprintf(f, "%s %s\n", namn, losenord); fclose(f); return 0; }
#include <stdlib.h> #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { printf("Ange namnet på datorn eller webbplatsen: "); char sokt_namn[100 + 1]; scanf("%s", sokt_namn); FILE *f = fopen("losenord.txt", "r"); if (f == NULL) { printf("Det gick inte att öppna filen 'losenord.txt'.\n"); exit(EXIT_FAILURE); } int hittat = 0; char namn[100 + 1]; char losenord[100 + 1]; while (fscanf(f, "%s %s", namn, losenord) == 2) { if (strcmp(namn, sokt_namn) == 0) { printf("%s\n", losenord); hittat = 1; } } fclose(f); if (hittat == 0) printf("Finns inte.\n"); return 0; }