Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. // wejsciowka5.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. #include <stdlib.h>
  7. #include <math.h>
  8.  
  9.  
  10.  
  11. int bin2int(char* t) {
  12. int j = 0, potega, wynik = 0, licznik = 0, dlugosc1 = 0; , dlugosc2 = 0;;
  13. while (t[j] != '\0') {
  14.  
  15. licznik++;
  16. j++;
  17. }
  18. potega = licznik;
  19. for (j = 0; j < licznik; j++) {
  20. if (t[j] == '1') {
  21. wynik += pow(2, potega - 1);
  22. }
  23. potega--;
  24.  
  25. }
  26. return wynik;
  27. }
  28.  
  29. int main()
  30. {
  31. int i, j = 0, w, k, max, nr_max, zmiana, sprawdz = 1, linijki = 0;
  32. char *pom1;
  33. int pom2;
  34.  
  35. printf("Podaj liczbe wierszy tablicy: ");
  36. scanf("%d", &w);
  37.  
  38. printf("\nPodaj liczbe kolumn tablicy: ");
  39. scanf("%d", &k);
  40.  
  41. char **tab = (char**)malloc(w*(sizeof(*tab)));
  42. for (i = 0; i < w; i++) {
  43. tab[i] = (char*)malloc(k*(sizeof(tab)));
  44. }
  45.  
  46. int *fun = (int*)malloc(w*(sizeof(int)));
  47.  
  48. i = 0;
  49. FILE *plik;
  50. plik = fopen("bin.txt", "r");
  51.  
  52. //czytanie z pliku
  53.  
  54. fscanf(plik, "%s", tab[i]);
  55. i++;
  56. linijki++;
  57. while (!feof(plik) && i<w) {
  58.  
  59.  
  60.  
  61. fscanf(plik, "%s", tab[i]);
  62. i++;
  63. sprawdz = 0;
  64. linijki++;
  65. }
  66.  
  67. if (sprawdz) {
  68. printf("\n\nPlik jest pusty\n\n");
  69. system("pause");
  70. exit(0);
  71.  
  72. }
  73.  
  74. printf("\n=========\n");
  75. for (i = 0; i < linijki; i++) {
  76. printf("\n%s", tab[i]);
  77. }
  78.  
  79.  
  80. for (i = 0; i < linijki; i++) {
  81. fun[i] = bin2int(tab[i]);
  82. printf("\nWynik %d działania funkcji: %s -> %d", i + 1, tab[i], fun[i]);
  83. }
  84.  
  85. i = 0;
  86.  
  87. for (i = 0; i < linijki; i++) {
  88.  
  89. printf("\nPrzed sorotwaniem: tab[%d]: %s ", i, tab[i]);
  90. }
  91.  
  92. // sortowanie
  93. /*for (j = 0; j < linijki; j++) {
  94. max = fun[j];
  95. zmiana = 0;
  96. for (i = j + 1; i < linijki; i++) {
  97. if (fun[i] > max) {
  98. max = fun[i];
  99. nr_max = i;
  100. zmiana = 1;
  101. }
  102. }
  103. if (zmiana) {
  104. pom1 = tab[j];
  105. tab[j] = tab[nr_max];
  106. tab[nr_max] = pom1;
  107.  
  108. pom2 = fun[j];
  109. fun[j] = fun[nr_max];
  110. fun[nr_max] = pom2;
  111.  
  112. }
  113. }
  114.  
  115. */
  116.  
  117. /*
  118. for (i = 1; i < linijki; i++) {
  119. j = 0;
  120. dlugosc1 = 0;
  121. dlugosc2 = 0;
  122. while (tab[i][j] != '\0') {
  123. dlugosc1++;
  124. j++;
  125. }
  126. j = 0;
  127. while (tab[i - 1][j] != '\0') {
  128. dlugosc2++;
  129. j++;
  130. }
  131. if (dlugosc1 > dlugosc2) {
  132. pom1 = tab[i-1];
  133. tab[i - 1] = tab[i];
  134. tab[i] = tab[i - 1];
  135. }
  136. if (dlugosc1 == dlugosc2) {
  137. j = 0;
  138. for (j = 0; tab[i][j] != '\0'; j++) {
  139.  
  140. }
  141. }
  142. }
  143. */
  144.  
  145. printf("\n\n=========================\n");
  146.  
  147.  
  148. for (i = 0; i < linijki; i++) {
  149.  
  150. printf("\ntab[%d]: %s ", i, tab[i]);
  151. }
  152.  
  153.  
  154. for (i = 0; i < linijki; i++) {
  155. fun[i] = bin2int(tab[i]);
  156. printf("\nWynik %d działania funkcji: %s -> %d", i + 1, tab[i], fun[i]);
  157. }
  158.  
  159.  
  160.  
  161. for (i = 0; i < w; i++) {
  162. free(tab[i]);
  163. }
  164. free(tab);
  165. printf("\n");
  166. system("pause");
  167.  
  168. return 0;
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement