[C] Inversione array

di il
4 risposte

[C] Inversione array

/*2) Scrivere un programma che inizializza un array di interi e ne copia gli elementi in ordine inverso
in un altro array della stessa dimensione.*/
#include <stdio.h>
int main(){
int A[11]; int B[11];
int i; int c;
printf("Scrivere 10 numeri da inserire nell'array: ");
for(i=0; i < 10; i++) {
	scanf("%d", &A[i]);
	}
printf("Array A: ");
for(i=0; i<10; i++) {
	printf("%d ", A[i]);
	}
for (i=0; i<10; i++){
	for (c=10; c>=0; c--){
		B[i] = A[c];
		}
	}
printf("\nArray B: ");
for (i=0; i<10; i++){
	printf("%d ", B[i]);
	}
return 0;
}

Cosa sbaglio? Nell'array B mi copia solo il primo elemento che metto nell'array A

4 Risposte

  • Re: [C] Inversione array

    Hai usato un doppio ciclo, che è comunque sbagliato, per inserire i valori nel secondo array, quando un doppio ciclo in questo caso non serve
  • Re: [C] Inversione array

    Sbagli nell'usare due cicli for innestati (ti consiglio di rivedere il funzionamento dei cicli for che, evidentemente, non ti è chiaro).

    Ci vuole un solo ciclo
    
    	for (i=0; i<10; i++){
    	  B[i] = A[9-i];
    	  }
    
    e anche i vettori devono essere da 10 e non da 11 elementi.
  • Re: [C] Inversione array

    oregon ha scritto:


    Sbagli nell'usare due cicli for innestati (ti consiglio di rivedere il funzionamento dei cicli for che, evidentemente, non ti è chiaro).

    Ci vuole un solo ciclo
    
    	for (i=0; i<10; i++){
    	  B[i] = A[9-i];
    	  }
    
    e anche i vettori devono essere da 10 e non da 11 elementi.
    Posto il codice intero con le opportune modifiche, solo che ora copia in tutto l'array B solo il penultimo elemento dell'array A
    /*2) Scrivere un programma che inizializza un array di interi e ne copia gli elementi in ordine inverso
    in un altro array della stessa dimensione.*/
    #include <stdio.h>
    int main(){
    int A[10]; int B[10];
    int i; int c;
    printf("Scrivere 10 numeri da inserire nell'array: ");
    for(i=0; i < 10; i++) {
    	scanf("%d", &A[i]);
    	}
    printf("Array A: ");
    for(i=0; i<10; i++) {
    	printf("%d ", A[i]);
    	}
    for (i=0; i<10; i++){
    	B[i] = A[9-1];
    	}
    printf("\nArray B: ");
    for (i=0; i<10; i++){
    	printf("%d ", B[i]);
    	}
    return 0;
    }
    
  • Re: [C] Inversione array

    Occhio ...

    non 9-1 ma 9-i

    rifletti su quello che scrivi ...
Devi accedere o registrarti per scrivere nel forum
4 risposte