Έχω κάνει μια άσκηση δουλεύει μέχρι ενός σημείου και μετά κολλάει. Πρέπει να παίρνει τις τιμές από έναν μονοδιάστατο πίνακα και να τις βάζει σε έναν τετραγωνικό στη διαγώνιο, ή στο πάνω μέρος (κάτω τριγωνικός) η στο κάτω (άνω τριγωνικός). Οι πίνακες είναι δυναμικοί με τη χρήση της malloc.
Στο προγ/μά μου με στατικο 2σδιαστατο πίνακα κάπως δούλεψε, όμως με δυναμικό με πετάει.
Καποια βοήθεια ?
Ευχαριστώ εκ των προτέρων
>
main() {
int* a = NULL;
int i, n;
printf("Dwste to megethos tou pinaka int a [] pou thelete na diavastei\n");
scanf("%d", &n);
printf("\nO pinakas twra einai a [%d]",n);
a = (int*)malloc(n*sizeof(int));
for (i=0; i<n; i++) {
a[i] = 0;
}
printf("\nDwste ena-ena ta stoixeia tou pinaka\n");
for(i=0;i<n;i++)
scanf("%d", &a[i]);
printf("\nO pinakas twra gemise me\n");
for(i=0;i<n;i++){
printf("%d ", a[i]);
}
int num;
int j, nrows, ncols;
int **ar = NULL;
ar =(int**) malloc(nrows * sizeof(int *));
for(i = 0; i < nrows; i++){
ar[i] = (int*)malloc(ncols * sizeof(int));
printf("\nDwste epilogi opou tha antigrafoun ta stoixeia tou trigwnikou\n");
printf("1 gia symmetriko\n");
printf("2 gia anw trigwniko\n");
printf("3 gia katw trigwniko\n");
scanf("%d\n",&num);
for (i =0;i<nrows; i++ ){
for(j=0;j<ncols;j++) {
if (num == 1){
if (i==j)
ar[i][j]=a[i];
}
if (num == 2){
if (i<j)
ar[i][j]=a[i];
}
if(num == 3){
if(i>j)
ar[i][j]=a[i];
}
}
}
for (i =0;i<ncols; i++ )
for(j=0;j<nrows;j++)
printf("%d%d\n", ar[i][j]);
}
}