Meu tempo está muito curto, más como vi um tópico noutro forum, sobre isto, gostei da idéia e resolvi fazer o exercício.
Tudo começa com a declaração do vetor dinâmico int *vet; onde temos a função malloc
que reserva memória para este vetor,veja como cai bem este tipo de vetor aqui neste
código, onde a variável tam recebe o tamanho máximo do vetor, e a sequência digitada é finalizado por -1
previamente declarei um ponteiro de char e inicializei com -1.
A variável num colhe os números da sequência, e quando -1 é digitado ele é comparado com a variável ponteiro
e sendo igual a função atoi da biblioteca stdlib.h, converte este -1 para inteiro, e a sequência é interrompida
pelo comando break;
Já no próximo bloco bem otimizado por um laço for, temos 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; entra em ação recebendo da variável aux, os dígitos já separados e entrega a printf que imprime esta sequência separada.
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.
O último bloco que é a razão deste código finaliza mostrando os números digitados com todos os seus repetentes.
Eis as saídas deste programa no cmd:
Eis o código abaixo, montado no eclipse, onde não mostrou nenhum warnings, o programa está rodando leve livre e solto.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
int tam;
int main(){
system ("title IMPRIMINDO NUMEROS REPETIDOS NUMA SEQUENCIA");
int *vet, i, j, num = 0, aux, ord, vezes;
vet = (int*) malloc (tam* sizeof(int)); // Alocando Memoria
char *numStr = "-1";
textcolor(LIGHTRED);gotoxy(21,3);printf("IMPRIMINDO NUMEROS REPETIDOS NUMA SEQUENCIA");
textcolor(LIGHTMAGENTA);gotoxy(34,5);printf("sa_sp10@hotmail.com");
textcolor(LIGHTBLUE);gotoxy(25,7); printf("Informe o tamanho maximo do Vetor: "); // 01/03/2013
textcolor(YELLOW); scanf("%d", &tam);fflush(stdin);
textcolor(LIGHTGREEN);gotoxy(21,9);printf("Digite um numero inteiro de %d algarismo: ", tam); // Para finalizar digite -1
for (i = 0; i < tam; i++) {
textcolor(YELLOW);scanf("%d", &num );fflush (stdin);
if ( num == atoi (numStr) ) { break; } // Finaliza a entrada de valores
textcolor(LIGHTBLUE);gotoxy(21,11); printf("Numeros Digitados: ");
textcolor(YELLOW);gotoxy(21,13);
for (i = 0; i < tam; i++){
aux = num % 10;
num = num / 10;
vet [i] = aux;
vet [i] = aux;
printf(" %d ", vet [i]);
}
getche();
textcolor(LIGHTBLUE);gotoxy(21,15); printf("Numeros Armazenadosdos Num Vetor");
textcolor(YELLOW);gotoxy(21,17);
for(i = 0; i < tam; i++){
printf(" %d",vet [i] );
}
getche( );
textcolor(LIGHTBLUE);gotoxy(21,19); printf("Numeros 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;
}
}
}
textcolor(YELLOW);for(i = 0; i < tam; i++)
printf(" %d ",vet [i] );
textcolor(WHITE);gotoxy(31,21);printf("PRESSIONE QUALQUER TECLA");
getche();
system("cls");
textcolor(LIGHTRED);gotoxy(21,3);printf("IMPRIMINDO NUMEROS REPETIDOS NUMA SEQUENCIA");
textcolor(LIGHTBLUE);gotoxy(9,5);printf("ESTES são OS NUMEROS DA SEQUENCIA");
textcolor(LIGHTRED);gotoxy(44,5);printf("==>");
textcolor(YELLOW);gotoxy(48,5);
for(i = 0; i < tam; i++)
printf(" %d ",vet [i] );
textcolor(LIGHTGREEN);gotoxy(23,7);printf("ESTES são OS NUMEROS COM SEUS REPETENTES");
textcolor(LIGHTBLUE);gotoxy(21,8);
for (i = 0; i < tam; i++) {
vezes = 1;
j = i + 1;
while (j < tam)
if (vet [j] != vet [i])
j++;
else {
vezes++;
tam--;
vet [j] = vet [tam];
}
printf("\n\t\t\t\t");
printf("O Numero ");
textcolor(LIGHTRED);printf("%d", vet [i]);
textcolor(LIGHTBLUE);printf(" ocorre");
textcolor(LIGHTRED);printf(" %d ", vezes);
textcolor(LIGHTBLUE);printf("vezes");
}
getche();
}
textcolor(LIGHTRED);gotoxy(35,23);printf ("O ROCCO AGRADECE");
getche();exit(0);
}
Tudo começa com a declaração do vetor dinâmico int *vet; onde temos a função malloc
que reserva memória para este vetor,veja como cai bem este tipo de vetor aqui neste
código, onde a variável tam recebe o tamanho máximo do vetor, e a sequência digitada é finalizado por -1
previamente declarei um ponteiro de char e inicializei com -1.
A variável num colhe os números da sequência, e quando -1 é digitado ele é comparado com a variável ponteiro
e sendo igual a função atoi da biblioteca stdlib.h, converte este -1 para inteiro, e a sequência é interrompida
pelo comando break;
Já no próximo bloco bem otimizado por um laço for, temos 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; entra em ação recebendo da variável aux, os dígitos já separados e entrega a printf que imprime esta sequência separada.
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.
O último bloco que é a razão deste código finaliza mostrando os números digitados com todos os seus repetentes.
Eis as saídas deste programa no cmd:
Eis o código abaixo, montado no eclipse, onde não mostrou nenhum warnings, o programa está rodando leve livre e solto.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
int tam;
int main(){
system ("title IMPRIMINDO NUMEROS REPETIDOS NUMA SEQUENCIA");
int *vet, i, j, num = 0, aux, ord, vezes;
vet = (int*) malloc (tam* sizeof(int)); // Alocando Memoria
char *numStr = "-1";
textcolor(LIGHTRED);gotoxy(21,3);printf("IMPRIMINDO NUMEROS REPETIDOS NUMA SEQUENCIA");
textcolor(LIGHTMAGENTA);gotoxy(34,5);printf("sa_sp10@hotmail.com");
textcolor(LIGHTBLUE);gotoxy(25,7); printf("Informe o tamanho maximo do Vetor: "); // 01/03/2013
textcolor(YELLOW); scanf("%d", &tam);fflush(stdin);
textcolor(LIGHTGREEN);gotoxy(21,9);printf("Digite um numero inteiro de %d algarismo: ", tam); // Para finalizar digite -1
for (i = 0; i < tam; i++) {
textcolor(YELLOW);scanf("%d", &num );fflush (stdin);
if ( num == atoi (numStr) ) { break; } // Finaliza a entrada de valores
textcolor(LIGHTBLUE);gotoxy(21,11); printf("Numeros Digitados: ");
textcolor(YELLOW);gotoxy(21,13);
for (i = 0; i < tam; i++){
aux = num % 10;
num = num / 10;
vet [i] = aux;
vet [i] = aux;
printf(" %d ", vet [i]);
}
getche();
textcolor(LIGHTBLUE);gotoxy(21,15); printf("Numeros Armazenadosdos Num Vetor");
textcolor(YELLOW);gotoxy(21,17);
for(i = 0; i < tam; i++){
printf(" %d",vet [i] );
}
getche( );
textcolor(LIGHTBLUE);gotoxy(21,19); printf("Numeros 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;
}
}
}
textcolor(YELLOW);for(i = 0; i < tam; i++)
printf(" %d ",vet [i] );
textcolor(WHITE);gotoxy(31,21);printf("PRESSIONE QUALQUER TECLA");
getche();
system("cls");
textcolor(LIGHTRED);gotoxy(21,3);printf("IMPRIMINDO NUMEROS REPETIDOS NUMA SEQUENCIA");
textcolor(LIGHTBLUE);gotoxy(9,5);printf("ESTES são OS NUMEROS DA SEQUENCIA");
textcolor(LIGHTRED);gotoxy(44,5);printf("==>");
textcolor(YELLOW);gotoxy(48,5);
for(i = 0; i < tam; i++)
printf(" %d ",vet [i] );
textcolor(LIGHTGREEN);gotoxy(23,7);printf("ESTES são OS NUMEROS COM SEUS REPETENTES");
textcolor(LIGHTBLUE);gotoxy(21,8);
for (i = 0; i < tam; i++) {
vezes = 1;
j = i + 1;
while (j < tam)
if (vet [j] != vet [i])
j++;
else {
vezes++;
tam--;
vet [j] = vet [tam];
}
printf("\n\t\t\t\t");
printf("O Numero ");
textcolor(LIGHTRED);printf("%d", vet [i]);
textcolor(LIGHTBLUE);printf(" ocorre");
textcolor(LIGHTRED);printf(" %d ", vezes);
textcolor(LIGHTBLUE);printf("vezes");
}
getche();
}
textcolor(LIGHTRED);gotoxy(35,23);printf ("O ROCCO AGRADECE");
getche();exit(0);
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.