Facebook
From Kamil, 6 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 237
  1. Funkcja wczytuje liczby do momentu podania liczby zakonczonej na 111,
  2. na biezaco realokuje pamiec, zwraca ilosc
  3. liczb podzielnych przez 5. Notacja wskaznikowa.
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. int liczby(void);
  7. main()
  8. {
  9. int b=0;
  10. b=liczby();
  11. printf("Ilosc liczb podzielnych przez 5 wynosi %d\n", b);
  12. system("PAUSE");
  13. return 0;
  14. }
  15. int liczby(void)
  16. {
  17. int *p=NULL;
  18. int i=0, licznik=0;
  19. p=(int*)malloc((i+1) *sizeof(int));
  20. do
  21. {
  22. fflush(stdin);
  23. scanf("%d", p+i);
  24. if((*(p+i)-111)%1000==0 && *(p+i)>=0 || (*(p+i)+111)%1000==0 && *(p+i)<=0) // ***
  25. break;
  26. else if(*(p+i)%5==0 && *(p+i)!=0)
  27. licznik++;
  28. i++;
  29. p=(int*)realloc(p, (i+1) *sizeof(int));
  30. }
  31. while(1);
  32. free(p);
  33. return licznik;
  34. }
  35.  
  36. Funkcja wczytuje liczby do momentu podania 0,
  37. na biezaco realokuje pamiec, liczby parzyste
  38. zapisuje zdublowane, nieparzyste pojedynczo
  39.  
  40. #include <stdio.h>
  41. #include <stdlib.h>
  42. int* liczby(void);
  43. main(){
  44. int *wsk=NULL;
  45. wsk=liczby();
  46. free(wsk);
  47. system("PAUSE");return 0;}
  48. int* liczby(void){
  49. int *p=NULL;
  50. int i=0, j;
  51. p=(int*)malloc((i+1) *sizeof(int));
  52. do{fflush(stdin);
  53. scanf("%d", p+i);
  54. if(*(p+i)==0)break;
  55. else if(*(p+i)%2==0){
  56. i++;
  57. p=(int*)realloc(p, (i+2) *sizeof(int));
  58. *(p+i)=*(p+i-1);
  59. i++;}
  60. else{i++;p=(int*)realloc(p, (i+1) *sizeof(int));
  61. *(p+i)=*(p+i);}}
  62. while(1);
  63. j=i;for(j=0 ; j<i ; j++)
  64. printf("%d\n", *(p+j));
  65. return p;}
  66.  
  67. Funkcja pobiera wczytana liczbe, zwraca wskaznik z podzielnikami i zapisuje do zmiennej 'il' ilosc podzielnikow.
  68. #include <stdio.h>
  69. #include <stdlib.h>
  70. int* podz(int liczba, int *il);
  71. main(){
  72. int *wsk=NULL;
  73. int a, i, il=0;
  74. printf("Podaj liczbe: ");
  75. scanf("%d", &a);wsk=podz(a,&il);
  76. printf("Podzielniki liczby %d to:\n", a);
  77. for(i=0 ; i<il ; i++)
  78. printf("%d\n", *(wsk+i));
  79. system("PAUSE");
  80. free(wsk);
  81. return 0;}
  82. int* podz(int liczba, int *il)
  83. {int *p=NULL;
  84. int i, j=0;
  85. p=(int*)malloc((j+1) *sizeof(int));
  86. for(i=1 ; i<=liczba ; i++)
  87. if(liczba%i==0){
  88. *(p+j)=i;
  89. *il=j+1;j++;
  90. p=(int*)realloc(p, (j+1) *sizeof(int));
  91. }return p;}