Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define nMax 20
- #define rMax 100
- void ruota(int v[], int N, char dir[], int P); // N = LUNGHEZZA VETTORE.
- void stampavettore(int v[], int n);
- int main(int argc, const char * argv[]) {
- char riga[rMax];
- char selettore[nMax], direzione[nMax];
- int indice, pos; //FINE STRUTTURA DATI RIGA DA ACQUISIRE DA TASTIERA.
- int i, j;
- int nr, nc;
- int m[nMax][nMax];
- int v[nMax];
- FILE *fp;
- //UTILIZZO FILE.
- fp = fopen("matrice.txt", "r");
- if (fp == NULL) {
- printf("errore apertura file\n");
- return -1;
- }
- fscanf (fp, "%d %d\n", &nr, &nc
- );
- for (i = 0; i < nr; i++){
- for (j = 0; j < nc; j++){
- fscanf (fp, "%d", &m[i][j]);
- }
- }
- fclose (fp);//FINE ALLOCAZIONE MATRICE.
- //ALGORITMO:
- printf ("inserisci una riga\n");
- fgets(riga, rMax , stdin);
- sscanf (riga, "%s %d %s %d", selettore, &indice, direzione, &pos);
- while (strcmp(selettore, "fine") != 0){
- if (strcmp(selettore, "riga") == 0) {
- for (i = 0; i < nc ; i++){
- v[i] = m[indice-1][i];
- } //COPIA RIGA IN UN VETTORE PARALLELO.
- ruota (v, nc, direzione, pos);
- }
- if(strcmp(selettore, "colonna") == 0) {
- for (i = 0; i < nr ; i++ ) {
- v[i] = m[i][indice-1];
- } //LINEARIZZA COLONNA.
- ruota (v, nr, direzione, pos);
- }
- printf ("inserisci una riga\n");
- scanf ("%s", riga);
- sscanf (riga, "%s %d %s %d", selettore, &indice, direzione, &pos);
- }
- return 0;
- }
- void ruota ( int v[] , int N , char dir[] , int P ) {
- int w[N];
- int i, j = 0;
- if ( strcmp(dir, "su") == 0 || strcmp(dir, "destra") == 0) {
- for ( i = N - P ; i < N ; i++ ) w[j++] = v[i];
- for ( i = 0 ; i < N - P ; i++ ) w[j++] = v[i];
- stampavettore(w, N);
- }
- else {
- for (i = 0; i < P ; i++) {
- w[N-P+j] = v[i];
- j++;
- }
- j = 0;
- for (i = P; i < N ; i++) {
- w[j++] = v[i];
- }
- stampavettore(w, N);
- }
- return;
- }
- void stampavettore (int v[], int n) {
- int i;
- for (i = 0 ; i < n ;i++) {
- printf ("%d" , v[i]);
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement