Programma numeri

di Anonimizzato13329 il
7 risposte
Devo fare un programma che dopo che inserisco una serie di numeri me li stampi in output con uno spazio tra le cifre. quindi se inserisco 87637 mi stampa 8 7 6 3 7

#include <stdio.h>

int main () {

int numeri[4];
int i;


printf ("inserire un numero di 5 cifre:");

for (i=0; i<4; i++) {

scanf ("%d", numeri);

}

printf ("il numero inserito %d %d %d %d %d", numeri[0], numeri[1],numeri[2],numeri[3],numeri[4]);

}

7 Risposte

  • Se inserisci 5 cifre perche il vettore contine 4 elementi?
  • Perché nei vettori si conta anche la posizione 0. quindi in totale sono 5
  • Non è vero, perché se scrivi

    int numeri[4];

    i numeri sono 4, con indice da 0 a 3

    Comunque ... la domanda qual è? In ogni caso, in quel modo non funziona ...

    Il vettore deve essere di 5 char
    
    char numeri[5];
    
    la for deve essere tra 0 e 5 e nella scanf devi usare il puntatore agli elementi.
    Inoltre i caratteri devono essere convertiti da ASCII al decimale.
    
    for (i=0; i<5; i++) {
    
    	scanf ("%c", &numeri[i]);	
    	numeri[i] -= '0';
    }
    
  • //dovresti fare in questo modo:
    #include<iostream>//(libreria per input e autput)
    #include<iomanip>
    #include<conio.h>//(serve per la chiusura)
    using namespace std; //(stai programmando in c++. E' la stessa cosa del c solo che printf(") e' cout<<"; e scanf("%d",&n) e' cin>>n;
    int main()
    {
    const int dimensione = 1000;
    int vett[dimensione];
    int numeri;
    int dim;
    do
    {
    cout<<"Quanti numeri devi stampare sullo schermo?\nRisposta: ";
    cin>>dim;
    }
    while(dim>dimensione);
    for(int i=0; i<dim; i++)
    {
    cout<<"Inserisci un numero: ";
    cin>>vett;
    }
    system("CLS"); // (serve per pulire lo schermo)
    for(int i=0; i<dim; i++)
    {
    cout<<setw(5)<<vett; // (setw e' la funzione che ti fa lasciare lo spazio tra due numeri e funziona solo con la libreria iomaip. n sarebbe la distanza che vuoi tra i numeri: se vuoi lasciare una distanza di 5 caratteri allora scriverai cout<<setw(5)<<vett)
    }
    cout<<"\n\nFine.";
    getch(); // (funziona solo con la libreria conio.h)
    }
  • getch(); // (funziona solo con la libreria conio.h)
    Stai programmando in C++. Basterebbe cin.get().
    conio.h non è standard.
    In un forum quando ci sono dei spezzoni di codice questi si racchiudono tra tag CODE.
  • SOLUZIONE GENERALIZZATA A STRINGHE. SE VUOI SOLO INTERI BASTA CHE NON CARICHI LA STRINGA (VETTORE DI CARATTERI) MA UN VETTORE DI INTERI E POI LO SCANSIONI NEL MODO SEGUENTE
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAX 999

    int main(void){
    int i, len;
    char stringa[MAX];

    printf("Input:");
    gets(stringa);
    printf("STRINGA:%s.\n", stringa);
    len=strlen(stringa);
    printf("La lunghezza della stringa e': %d.\n", len);
    printf("OUTPUT:");
    for(i=0; i<len; i++){
    printf("%c ", stringa);
    }

    printf("\n");
    system("pause");
    return 0;
    }
  • Ma perchè GRIDI?

    E poi non è vero che per gli interi basta usare un vettori di interi ... forse non hai letto tutto il thread per bene ...
Devi accedere o registrarti per scrivere nel forum
7 risposte