Advertisement
Guest User

pot.c: Lauri Friberg 2017 (xormor) fixed, korjattu, new/uusi

a guest
Mar 25th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.89 KB | None | 0 0
  1. //Exponents: powers of 2: Positive integers to the power of 2: pot=2^n; CREATIVE COMMONS COPYRIGHT LAURI K. FRIBERG 2015. Laskee kahden potensseja, 2^n. Tärkeä binäärijärjestelmän käyttämisessä: "pot.c", fixed further. Korjattu enemmän.
  2. //how to compile using gcc: "gcc pot.c -o pot". How to run on GNU/POSIX/UNIX/LINUX systems: "./pot".
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <math.h>
  6. int main(int argc, char **argv)
  7. {
  8. long long int i, x=1ULL, pot;
  9. puts("CREATIVE COMMONS COPYRIGHT LAURI K. FRIBERG 2015, 2017.");
  10. printf("Mikä on \"n\" jos x=2^n? ");
  11. if(argc>=2)
  12. {
  13.     if(!(strcmp(argv[1],"--help"))||!(strcmp(argv[1],"-h"))||!(strcmp(argv[1],"-?")))
  14.     {
  15.         puts("CREATIVE COMMONS COPYRIGHT LAURI K. FRIBERG 2015, 2017.");
  16.         printf("Kuinka monta kertaa toistetaan operaatio? mMnenteen potenssiin haluat laskea 2^n? ");
  17.         printf("Kuinka monta kakkosta haluat?  2*2*2*...*2. Mikä on \"n\" jos x=2^n?\n\n");
  18.         exit(1);
  19.     }
  20. }
  21.  
  22. if(argc>=2) { pot = atoi(argv[1]); }
  23.  
  24. if(argc<=1)
  25. {
  26.     printf("\nMikä on suurin laskurin n arvo eli kahden potenssi? ");
  27.     scanf("%llu", &pot);
  28. }
  29.  
  30. if (pot<0)
  31. {
  32.     puts("");
  33.     fprintf(stderr,"ERROR NUMBER 013: \"NEGATIVE NUMBER INPUT\": RETCODE 13: Varoitus! Laittamasi potenssi on negatiivinen numero, eli alle");
  34.     fprintf(stderr," nollan (pot<0): älä anna tällaisia numeroita enää, kiitos. Ole kiltti ja laita seuraavalla ajokerralla nollaa suurempi,");
  35.     fprintf(stderr," eli positiivinen luku.\n\n");
  36.     exit(13);
  37. }
  38.  
  39. if (pot==0)
  40.     { puts(""); puts("2⁰==1"); exit(0); }
  41.  
  42. else if (pot==1)
  43.     { puts(""); puts("2⁰==1"); puts("2¹==2"); exit(0); }
  44.  
  45. else if (pot==2)
  46.     { puts(""); puts("2⁰==1"); puts("2¹==2"); puts("2²==4"); exit(0); }
  47.  
  48. else if (pot==3)
  49.     { puts(""); puts("2⁰==1"); puts("2¹==2"); puts("2²==4"); puts("2³==8"); exit(0); }
  50.  
  51. puts("");
  52. for (i=0ULL; i<=pot; i++)
  53.     { printf("2^%llu==%llu\n", i, x); x=2*x; }
  54.  
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement