]> hackdaworld.org Git - my-code/beginners.git/commitdiff
added matrix.c file - learning malloc and pointers.
authorhackbard <hackbard>
Tue, 9 Apr 2002 19:21:30 +0000 (19:21 +0000)
committerhackbard <hackbard>
Tue, 9 Apr 2002 19:21:30 +0000 (19:21 +0000)
matrix.c [new file with mode: 0644]

diff --git a/matrix.c b/matrix.c
new file mode 100644 (file)
index 0000000..049f8f0
--- /dev/null
+++ b/matrix.c
@@ -0,0 +1,52 @@
+#include <stdio.h>
+
+int *pelemente;
+
+void read_matrix ( int *pzeilen, int *pspalten ) {
+       
+       /* abfragen der anzahl der zeilen und spalten. eintrag auf pointer. */
+       int i,j,temp,zeilen,spalten;
+       printf("Anzahl der Zeilen eingeben: ");
+       scanf("%d",&zeilen);
+       *pzeilen=zeilen; 
+       printf("Anzahl der Spalten eingeben: ");
+       scanf("%d",&spalten);
+       *pspalten=spalten;
+       
+       /* memory allocation */
+       pelemente=(int *)malloc(zeilen*spalten * sizeof(int));
+
+       /* abfragen der elemente */
+       for (i=0;i<zeilen;++i) {
+               for (j=0;j<spalten;++j) {
+                       printf("Element: %d. Spalte und %d. Zeile: ",j+1,i+1);
+                       scanf("%d",&temp);
+                       /* speichern der elemente */
+                       *(pelemente + i*spalten + j)=temp;
+               }
+       }
+
+       return;
+}
+
+void write_matrix ( int zeilen, int spalten ) {
+       int i,j,temp;
+       for (i=0;i<zeilen;++i) {
+               for (j=0;j<spalten;++j) {
+                       temp=*(pelemente + i*spalten + j);
+                       printf("%03d\t",temp);
+               }
+       printf("\n");
+       }
+       return;
+}
+
+int main() {
+
+int z;
+int s;
+
+read_matrix(&z,&s);
+write_matrix(z,s);
+return;
+}