Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C] problema con array

  1. #1

    [C] problema con array

    salve
    stavo facendo questo programma con gli array ma non funziona, non riesco a capire qual'č l'errore, mi potete aiutare?? Grazie in anticipo
    codice:
    // letta in imput una sequenza di interi positivi, memorizzarla in un array. Eliminare dall'array tutti i multipli di 3.
    
    
    #include<stdlib.h>
    #include<stdio.h>
    
    #define n 4
    
    int main(){
     int a, b, i;
        int A[n];
        a=1;
        i=0;
        while (a<=n){
            printf("inserisci il %d numero ", a);
            scanf("%d", &A[i]);
            a++;
            i++;
        }
        i=0;
        while (i<n){
            printf("%d", A[i]);
            i++;
        }
        i=0;
        while (i<n){
            if((i/3)*3==i){
                i=0;
                i++;
            }
            else{
                i++;
            }
        }
        i=0;
        while (i<n){
            printf("%d",i);
            i++;
        }
    }
    Ultima modifica di MItaly; 06-02-2014 a 14:05 Motivo: Tag CODE

  2. #2
    codice:
            if((i/3)*3==i){
    Al di lā del fatto che per vedere se un numero č multiplo di un altro normalmente si usa l'operatore % (restituisce il resto della divisione intera tra due numeri, che č zero nel caso in cui il primo sia multiplo del secondo), qui stai controllando se l'indice č multiplo di tre, quando dovresti controllare il valore contenuto in quella posizione.
    codice:
    i=0;
    Questo non ha senso - stai impostando l'indice con cui stai ciclando sull'array a zero, per cui non fai altro che ricominciare il ciclo dall'inizio.
    Tra l'altro, in C non c'č un "vero" modo per cancellare un elemento da un array, se va bene impostare l'elemento a zero allora puoi correggere facilmente, in alternativa dovrai "shiftare" indietro tutti gli elementi facendogli "ricoprire" le posizioni degli elementi cancellati, e segnarti la nuova "lunghezza logica" del vettore, per stampare solo gli elementi che ti interessano.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    ok grazie mille!!! ho capito dove sbagliavo e ora funziona

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.