X3minater
Power Member
Boas
Queria arranjar uma função que contasse 9 digitos de um numero introduzido... (ex: 846248654, 074534054, 000000000, ...) mas que contasse os 0 como digitos e desse erro quando não eram introduzidos 9 digitos!
Fiz este código, mas dá-me sempre ERRO! :S
E depois fiz outro:
Neste ultimo, utilizei o for para ver se os numero introduzidos faziam parte da tabela ASCII (entre 48 e 57) mas não deve ser assim que se faz... então como é?
Queria arranjar uma função que contasse 9 digitos de um numero introduzido... (ex: 846248654, 074534054, 000000000, ...) mas que contasse os 0 como digitos e desse erro quando não eram introduzidos 9 digitos!
Fiz este código, mas dá-me sempre ERRO! :S
Código:
#include <stdio.h>
#include <string.h>
int main(void){
char cont[10];
char ch;
int i=0, op=1;
do{
printf("Introduza um inteiro de 9 digitos: ");
while ((ch = getchar()) != '\n');{
cont[i++] = ch;}
cont[i] = '\0';
if(i!=10){
printf("ERRO\n\n");
}
else
op = 2;
} while(op==1);
printf("%s", cont);
return 0;
}
Código:
#include <stdio.h>
#include <string.h>
int main(void){
char cont[10];
int i;
printf("Introduza um inteiro de 9 digitos: ");
scanf("%s", cont);
for(i=0; i<10; i++){
if(cont[i]<=47 && cont[i]>=58){
printf("ERRO, NÃO E UM NUMERO\n");
return -1;
}
}
if(strlen(cont)!=9){
printf("MENOS DE 9 DIGITOS\n");
return -1;
}
printf("%s", cont);
return 0;
}