Salve a tutti, sto facendo un programma in C per me ma non funziona parte del codice. La parte che mi da problemi e' questa. Devo creare una matrice di dimensione r*c ordinata rispetto alle colonne. Per esempio se r=3 e c=2 la prima colonna deve avere i numeri 1,2,3 e l'altra 4,5,6. Il codice che ho creato non funziona sempre (per esempio non va per r=6 e c=15 mentre funziona per r=4 e c=3). Il codice e' questo:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define R 30
#define C 30
int main()
{
int r,c,a,b;
printf("quale e' la dimensione della matrice?\n");
printf("scrivi il numero di righe:\n");
scanf("%d",&r);
printf("scrivi il numero di colonne:\n");
scanf("%d",&c);
int mat1[r][c];
int i,j,k=1;
for(j=1;j<=c;j++)
for(i=1;i<=r;i++)
{
mat1[i][j]=k;
k++;
}
/** stampa della matrice creata **/
for(i=1;i<=r;i++)
{
for(j=1;j<=c;j++)
printf("%4d",mat1[i][j]);
printf("\n");
}
printf("\n");
}
Ho notato che se nei cicli for faccio partire gli indici da 0 e non da 1, (e cambiando l'arrivo con i<r e j<c), funziona alla perfezione. Il problema è che a me servono che partano da 1. Dove può stare il problema? Grazie in anticipo per eventuali risposte.