Untitled


SUBMITTED BY: Guest

DATE: Oct. 26, 2016, 7:10 p.m.

FORMAT: C

SIZE: 2.6 kB

HITS: 1144

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. long *allocate_numberarray(long len)
  4. {
  5. long i;
  6. long *zahl;
  7. if ((zahl= malloc (len*sizeof(long)!=0)))
  8. {
  9. for (i=0; i<len; i++)
  10. zahl[i]=0;
  11. }
  12. else
  13. {
  14. fprintf(stderr, "Fehler bei Speicherallozierung");
  15. exit(-1);
  16. }
  17. return zahl;
  18. }
  19. void our_free (long *mem)
  20. {
  21. if (mem)
  22. {
  23. free(mem);
  24. mem=0;
  25. }
  26. }
  27. void print (long *mem, long len)
  28. {
  29. long i;
  30. printf("Die Zahl: ");
  31. for (i=(len-1); i>=0; i--)
  32. {
  33. printf("%ld",mem[i]);
  34. }
  35. }
  36. long *read_array (long *mem, long len)
  37. {
  38. long i;
  39. long Wert;
  40. printf("Zahl einlesen:\n");
  41. for (i=0; i<len; i++)
  42. {
  43. printf("%ld. Stellen: ", i+1);
  44. scanf("%ld",&Wert);
  45. getchar();
  46. mem[i]=Wert;
  47. }
  48. return mem;
  49. }
  50. long *change_size (long *mem, long old_size, long new_size)
  51. {
  52. long i;
  53. long *zahl;
  54. if ((zahl= realloc(mem, new_size*sizeof(long)!=0)))
  55. {
  56. if(new_size>old_size)
  57. {
  58. for (i=0; i<new_size; i++)
  59. zahl[i]=0;
  60. }
  61. }
  62. else
  63. {
  64. fprintf(stderr, "Fehler bei der Realallozierung");
  65. exit(-1);
  66. }
  67. return zahl;
  68. }
  69. long add (long *a, long size1, long *b, long size2, long *c, long size3)
  70. {
  71. long i;
  72. for (i=1; i<size1; i++)
  73. {
  74. c[i]=a[i];
  75. }
  76. return c;
  77. }
  78. int main()
  79. {
  80. long *neuezahl1, *neuezahl2;
  81. long laenge1, laenge3;
  82. long laenge1_neu;
  83. long laenge2=3;
  84. laenge3=laenge2;
  85. long *neuezahl3;
  86. printf("1.Zahl: Wie viele stellen?: ");
  87. scanf("%ld",&laenge1);
  88. getchar();
  89. printf("\n");
  90. neuezahl1=allocate_numberarray(laenge1);
  91. neuezahl1=read_array(neuezahl1, laenge1);
  92. print(neuezahl1,laenge1);
  93. printf("\n");
  94. /* printf("Neue Länge eingeben; ");
  95. scanf("%ld", &laenge1_neu);
  96. getchar();
  97. printf("\n");
  98. neuezahl1=change_size(neuezahl1, laenge1, laenge1_neu);
  99. laenge1=laenge1_neu;
  100. neuezahl1=read_array(neuezahl1, laenge1);
  101. print(neuezahl1, laenge1); */
  102. print(neuezahl2,laenge2);
  103. neuezahl2=allocate_numberarray(laenge2);
  104. neuezahl2=read_array(neuezahl2, laenge2);
  105. neuezahl3=allocate_numberarray(laenge3);
  106. print(neuezahl2,laenge2);
  107. neuezahl3= add(neuezahl1, laenge1, neuezahl2, laenge2, neuezahl3, laenge3);
  108. print(neuezahl3, 3);
  109. printf("\n");
  110. our_free(neuezahl1);
  111. our_free(neuezahl2);
  112. our_free(neuezahl3);
  113. return 0;
  114. }

comments powered by Disqus