struct Rymdskepp { int nummer; char namn[10 + 1]; int x, y; double maxfart; };
struct Rymdskepp r = { 17, "Olle", 0, 0, 10.0 };
void visa_rymdskepp(struct Rymdskepp rymdskeppet) { printf("Nummer: %d\n", rymdskeppet.nummer); printf("Spelare: %s\n", rymdskeppet.namn); printf("Position: x = %d, y = %d\n", rymdskeppet.x, rymdskeppet.y); printf("Maxfart: %f\n", rymdskeppet.maxfart); }
struct Rymdskepp las_rymdskepp() { struct Rymdskepp r; printf("Rymdskeppets nummer: "); scanf("%d", &r.nummer); while (getchar() != '\n') ; printf("Spelarens namn: "); gets(r.namn); /* Använd inte gets i riktiga program! */ printf("Position, y-koordinat: "); scanf("%d", &r.x); printf("Position, y-koordinat: "); scanf("%d", &r.y); printf("Maxfart: "); scanf("%lf", &r.maxfart); while (getchar() != '\n') ; return r; }
int krock(struct Rymdskepp rymdskepp1, struct Rymdskepp rymdskepp2) { return rymdskepp1.x == rymdskepp2.x && rymdskepp1.y == rymdskepp2.y; }
int main(void) { struct Rymdskepp rymdskepp1, rymdskepp2; printf("Mata in data om rymdskepp nummer 1!\n"); rymdskepp1 = las_rymdskepp(); printf("Mata in data om rymdskepp nummer 2!\n"); rymdskepp2 = las_rymdskepp(); if (krock(rymdskepp1, rymdskepp2)) printf("Rymdskeppen har krockat.\n"); else printf("Rymdskeppen har inte krockat.\n"); return 0; }
int hinner(struct Rymdskepp rymdskeppet, int x, int y) { double avstand = sqrt(pow(rymdskeppet.x - x, 2) + pow(rymdskeppet.y - y, 2)); return avstand <= rymdskeppet.maxfart; }
#include <stdio.h> #include <string.h> int main(void) { char sokt_namn[10 + 1]; printf("Ange namn: "); scanf("%s", sokt_namn); /* Undvik scanf("%s", ...) i riktiga program */ FILE* f = fopen("namn.txt", "r"); int antal = 0; char detta_namn[10 + 1]; while (fscanf(f, "%s", detta_namn) == 1) if (strcmp(detta_namn, sokt_namn) == 0) ++antal; printf("Antal %s: %d\n", sokt_namn, antal); return 0; }
#include <stdlib.h> #include <time.h> #include <stdio.h> #define ANTAL 1000 int main(void) { int utfall[ANTAL]; srand(time(NULL)); for (int i = 0; i < ANTAL; ++i) utfall[i] = rand() % 6 + 1; int antal[7]; for (int i = 1; i <= 6; ++i) antal[i] = 0; for (int i = 0; i < ANTAL; ++i) antal[utfall[i]]++; for (int i = 1; i <= 6; ++i) printf("Antal %d: %d\n", i, antal[i]); return 0; }
#include <stdlib.h> #include <stdio.h> /* Vi upprepar inte definitionerna från de tidigare uppgifterna. */ int main(void) { struct Rymdskepp rymdskepp1, rymdskepp2; printf("Mata in data om rymdskepp nummer 1!\n"); rymdskepp1 = las_rymdskepp(); printf("Mata in data om rymdskepp nummer 2!\n"); rymdskepp2 = las_rymdskepp(); FILE* f = fopen("filen.bin", "wb"); if (rymdskepp1.maxfart > rymdskepp2.maxfart) fwrite(&rymdskepp1, sizeof rymdskepp1, 1, f); else fwrite(&rymdskepp2, sizeof rymdskepp2, 1, f); fclose(f); return 0; }
#include <stdlib.h> #include <stdio.h> /* Vi upprepar inte definitionerna från de tidigare uppgifterna. */ int main(void) { struct Rymdskepp rymdskepp[MAX_ANTAL], temp; int antal_rymdskepp = 0; int antal_krockar = 0; printf("Mata in rymdskepp. Avsluta med ett rymdskepp med nummer 0.\n"); temp = las_rymdskepp(); while (temp.nummer != 0) { rymdskepp[antal_rymdskepp++] = temp; printf("Mata in rymdskepp. Avsluta med ett rymdskepp med nummer 0.\n"); temp = las_rymdskepp(); } for (int x = 0; x < antal_rymdskepp; ++x) for (int y = x + 1; y < antal_rymdskepp; ++y) if (krock(rymdskepp[x], rymdskepp[y])) ++antal_krockar; printf("Antal krockar: %d\n", antal_krockar); return 0; }
#include <stdio.h> #include <string.h> int main(void) { char rad[100 + 1]; int antal[13]; for (int i = 1; i <= 12; ++i) antal[i] = 0; printf("Ange ett personnummer (avsluta med tom rad): "); fgets(rad, sizeof rad, stdin); while (rad[0] != '\n') { int m = (rad[2] - '0') * 10 + (rad[3] - '0'); ++antal[m]; printf("Ange ett personnummer (avsluta med tom rad): "); fgets(rad, sizeof rad, stdin); } int maxantal = antal[1]; int maxmanad = 1; for (int i = 2; i <= 12; ++i) { if (antal[i] > maxantal) { maxantal = antal[i]; maxmanad = i; } } printf("Flest personer var födda i månad nummer %d.\n", maxmanad); return 0; }