Declarei uma string do tipo char para ponteiro de nome *numStr, e inicializei com -1.
dentro do if a variável num se iguala com *numStr, que pela função atoi este -1 é convertido em inteiro e finaliza a sequência graças ao comando break, que completa a operação.
Já no próximo bloco bem otimizado por um laço for, declarei a variável aux que auxilia a variável num, onde a finalidade é a separação dos dígitos digitado na sequência.
Então o vetor vet [i], entra em ação recebendo da variável aux, os dígitos já separados e entrega a printf que imprime esta sequência separada.
Então, os números da sequência são outra vez imprimido, agora pelo vetor vet [i]; Não há nenhuma necessidade de imprimir isto,
más fiz só para provar que os valores já estão armazenados no vetor. No bloco seguinte, a sequência digitada
entra no processo de ordenação, onde usei o método da bolha, que é fácil de imprementar, e a sequência é imprimida em ordem.
Também não havia necessidade de fazer isto, más fiz só para dar um resultado agradável na saída. O último bloco
que é a razão deste código finaliza mostrando o fatorial de cada dígito da sequência.
Eis o código abaixo:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
//#define tam 10
int tam;
int main(){
int vet [ 10 ];
char *numStr = "-1";
int i, num, aux, ord;
int CONTADOR = 1; // dia 21/02/2013
int FATORIAL = 1; // Funcionando perfeitamente
printf("Informe o tamanho do Vetor: "); // 20/02/2013
scanf("%d", &tam);fflush(stdin);
printf("\nDigite um numero inteiro de %d algarismo: ", tam); // Para finalizar digite -1
for (i = 0; i < tam; i++) {
scanf("%d", &num );fflush (stdin);
if ( num == atoi (numStr) ) { break; }
printf("\nNumeros Digitados: ");
printf("\n\n");
for (i = 0; i < tam; i++){
aux = num % 10;
num = num / 10;
vet [i] = aux;
vet [i] = aux;
printf(" %d ", vet [i]);
}
getche();
printf("\n\nNumeros Armazenadosdos Num Vetor");
printf("\n\n");
for(i = 0; i < tam; i++){
printf(" %d",vet [i] );
}
}
getche( );
printf("\n\nNumeros Ordenados: ");
ord = 0;
while ( ord == 0 ){
ord = 1;
for ( i = 0; i < tam; i++ ){
if ( vet [i] >
vet [ ( i + 1 ) ] ){
aux = vet [i];
vet [i] = vet [ (i + 1) ];
vet [(i + 1)] = aux;
ord = 0;
}
}
}
for(i = 0; i < tam; i++)
printf(" %d ",vet [i] );
getche();
for ( i = 1; i < tam; i++ ){
while (CONTADOR <= vet [i] ){
FATORIAL *= CONTADOR;
CONTADOR += 1;
}
printf("\n\n fatorial de %d equivale a %d", vet [i], FATORIAL);
}
getche();
}
#include <conio.h>
#include <stdlib.h>
#include <string.h>
//#define tam 10
int tam;
int main(){
int vet [ 10 ];
char *numStr = "-1";
int i, num, aux, ord;
int CONTADOR = 1; // dia 21/02/2013
int FATORIAL = 1; // Funcionando perfeitamente
printf("Informe o tamanho do Vetor: "); // 20/02/2013
scanf("%d", &tam);fflush(stdin);
printf("\nDigite um numero inteiro de %d algarismo: ", tam); // Para finalizar digite -1
for (i = 0; i < tam; i++) {
scanf("%d", &num );fflush (stdin);
if ( num == atoi (numStr) ) { break; }
printf("\nNumeros Digitados: ");
printf("\n\n");
for (i = 0; i < tam; i++){
aux = num % 10;
num = num / 10;
vet [i] = aux;
vet [i] = aux;
printf(" %d ", vet [i]);
}
getche();
printf("\n\nNumeros Armazenadosdos Num Vetor");
printf("\n\n");
for(i = 0; i < tam; i++){
printf(" %d",vet [i] );
}
}
getche( );
printf("\n\nNumeros Ordenados: ");
ord = 0;
while ( ord == 0 ){
ord = 1;
for ( i = 0; i < tam; i++ ){
if ( vet [i] >
vet [ ( i + 1 ) ] ){
aux = vet [i];
vet [i] = vet [ (i + 1) ];
vet [(i + 1)] = aux;
ord = 0;
}
}
}
for(i = 0; i < tam; i++)
printf(" %d ",vet [i] );
getche();
for ( i = 1; i < tam; i++ ){
while (CONTADOR <= vet [i] ){
FATORIAL *= CONTADOR;
CONTADOR += 1;
}
printf("\n\n fatorial de %d equivale a %d", vet [i], FATORIAL);
}
getche();
}