PDA

Visualizza la versione completa : [C] Array di cifre di un numero naturale fornito in input


stranorox
06-04-2007, 14:10
Vi espongo il dubbio,
Devo dare in input un numero naturale e rappresentarlo tramite array:
quindi se in input schiaffo 343, l'array dovrÓ contenere i numeri "tre" "quattro" e "tre" in varie "caselle" dll'array. DovrÓ essere quindi un array di cifre che rappresenta il numero.
Come posso fare?

perzem
06-04-2007, 16:31
ti fai dare in input il numero come stringa, calcoli la sua lunghezza crei un array con quella lunghezza, scorri la stringa ed ogni numero lo metti in una cella dell'array

stranorox
06-04-2007, 17:16
scusa ma se io faccio dare in input 300 e lo faccio leggere come stringa, non me lo legge come elemento unico formato da tre caratteri?

XWolverineX
06-04-2007, 17:36
fai una cosetta del genere



//Supponiamo un numero di 4 cifre, ogni cifra max 4 lettere. stringa Ŕ il numero preso da input.
char p[4][4];
for (int i = 0; i < strlen(stringa); i++)
{
switch(stringa[i])
{
case 0:
strcpy(p[i]),"zero");
case 1:
//e continui cosi
}
}

stranorox
06-04-2007, 18:05
scusate ma sono molto nuovo del C io ho fatto questa piccola cosa per verificare se copia bene i caratteri nell'array, quindi ho provato a stamparne uno a caso dell'array



#include <stdio.h>
#include <string.h>

main(){
int i;
char numero1[19];
int array_num[20];

printf("Inserisci il primo numero\n");
scanf("%d",numero1);

for(i=0; numero1[i]!=' \0 '; i++);
array_num[i]=numero1[i];

printf("\n%d\n", array_num[0]);


getchar;
getchar;
}


purtroppo non va...potreste dirmi dove ho sbagliato?

Samuele_70
06-04-2007, 18:21
Mamma mia ! :oVVoVe: Ma che hai scritto ?


#include <stdio.h>
#include <string.h>

#define MAX_ARRAY 8

int main()
{
int len, i;
int array_num[MAX_ARRAY];
char str[MAX_ARRAY];

printf("Inserisci il primo numero\n");
scanf("%s", str);

for( len=0; str[len]>='0' && str[len]<='9' && len<MAX_ARRAY; len++)
array_num[len]=str[len]-'0';

printf("\n\nMostro contenuto array\n");
for( i=0; i<len; i++)
printf("%d,", array_num[i]);
printf("\n");
getchar();
return 0;
}

XWolverineX
06-04-2007, 18:28
Ma il mio codice va bene oppure no?

Samuele_70
06-04-2007, 18:35
Il tuo codice potrebbe andare, (anche se mancano i break :mame: )
ma credo che l'array debba essere di interi, non di stringhe ...

XWolverineX
06-04-2007, 18:37
giÓ.
si dovevano quindi mettere gli apici giusto?

case '0':

Samuele_70
06-04-2007, 18:45
Si, ma intendevo l'array finale dove inserire le cifre, credo, debba essere di interi.

Loading