-
Posts
10 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Victor Vilardo
-
-
muito obrigado gente!! realmente eu estava printando sem copiar os vetores, por isso no terceiro vetor tava dando uma coisa estranha
-
To com duvida nesse exercicio da faculdade.
Nao to conseguindo fazer esse terceiro vetor, ta imprimindo um valor errado, n sei se a solução esta certa também
Faça um programa que crie e preencha dois vetores dinâmicos, de números inteiros, com tamanhos estipulados pelo usuário. Após a leitura dos dois vetores, o programa deve criar um terceiro vetor, dinamicamente, que tenha um tamanho para permitir a união dos dois vetores inicialmente criados. Faça essa união e exiba o vetor resultante.
<CODE>
#include <stdlib.h>
#include <stdio.h>int main (){
int *v,*v2,*vF;
int qtde,i,qtde2,qtdeF;
printf("Informe o tamanho do primeiro vetor: ");
scanf("%d", &qtde);
v = (int*) malloc(qtde*sizeof(int));
if(v==NULL){
printf("Nao foi possivel alocar espaco!");
exit(0);
}
for (i=0; i<qtde;i++){
printf("Informe um numero: ");
scanf("%d", &v[i]);
}
for (i=0;i<qtde;i++){
printf("%d", v[i]);
}
printf("\n Informe o tamanho do segundo vetor: ");
scanf("%d", &qtde2);
v2 = (int*) malloc(qtde2*sizeof(int));
if(v2==NULL){
printf("Nao foi possivel alocar espaco!");
exit(0);
}
for (i=0; i<qtde2;i++){
printf("Informe um numero: ");
scanf("%d", &v2[i]);
}
for (i=0;i<qtde2;i++){
printf("%d", v2[i]);
}
qtdeF = qtde + qtde2;
vF = (int*) malloc(qtdeF*sizeof(int));
if(vF==NULL){
printf("Nao foi possivel alocar espaco!");
exit(0);
}
printf("\n Vetor final\n");
for (i=0;i<qtdeF;i++){
printf("%d", vF[i]);
}
}
-
@mauro_b é sim, é da minha faculdade. to tentando resolver aqui com as orientações do post
- 1
-
Entao... eu tenho que fazer a implementação um procedimento para inserir um item em uma determinada posição da lista.
Ja tenho a função de inserir, remover, buscar, mas de inserir em uma determinada posição eu to travado.
Eu sei o que tenho que fazer...
Que é inserir na posição que eu quero, e pegar os elementos que estão la e arrastar pra direita. Mas nao to conseguindo passar isso pro codigo
<CODE>
#include <stdio.h> #include <stdlib.h> #define M 100 void inserePosicao (int pos, int *n, int *L) { int i, pos; if (pos>0 && pos <=M) if (pos==0) inserir(x,&n, L); else //...... } int buscarSeq( int x, int n, int *L) { int i=0; while (i<= n){ if (L[i] == x) { return i; } i++; } return -1; } void inserir(int x, int *n, int *L){ if (*n < M-1) { if (buscarSeq(x,*n,L) == -1){ *n = (*n)+1; L[*n]=x; } else printf("\nElemento j? existe\n"); } else printf("\nLista cheia!\n"); } void remover(int x, int *n, int *L){ int i, indice; if (*n >= 0) { indice= buscarSeq(x,*n,L); if (indice != -1){ for (i=indice; i<*n; i++) L[i]=L[i+1]; (*n)--; } else printf("\nElemento n?o existe\n"); } else printf("\nLista vazia!\n"); } void imprimir(int n, int *L){ int i; if (n>=0){ printf("\nIMPRESS?O DA LISTA\n"); for(i=0; i<=n;i++){ printf("%d ",L[i]); } printf("\n"); } else{ printf("\nLista vazia!\n"); } } int main(){ int L[M]; int n=-1, op,x, pos; do{ system("cls"); printf("\nMenu de op??es - Lista Sequencial\n"); printf("1- Inserir valor\n"); printf("2- Buscar por um valor\n"); printf("3- Remover um valor\n"); printf("4- Exibir a lista\n"); printf("5- Sair\n"); printf ("6- Inserir posicao"); printf("Informe sua op??o: "); scanf("%d", &op); switch(op){ case 1:{ printf("Informe o valor a ser inserido na lista: "); scanf("%d",&x); inserir(x,&n, L); break; } case 2:{ int res; printf("Informe o valor a ser encontrado na lista: "); scanf("%d",&x); res = buscarSeq(x,n,L); if(res==-1){ printf("\nO valor n?o foi encontrado na lista!\n"); } else{ printf("\nO valor %d foi encontrado na posi??o %d da lista\n",L[res], res); } break; } case 3:{ printf("Informe o valor a ser removido da lista: "); scanf("%d",&x); remover(x, &n, L); break; } case 4:{ imprimir(n, L); break; } case 5:{ printf("\nFinalizando o programa\n"); break; } case 6:{ printf("Em que posicao [de 1 a %d] voce deseja inserir : ", M); scanf("%d",&pos); inserePosicao (pos,L); } default:{ printf("\nOp??o inv?lida!\n"); break; } } system("Pause"); }while(op!=5); }
- 1
-
29 minutos atrás, devair1010 disse:
@Victor Vilardo os cálculos estão funcionando , porém você não colocou o especificador no printf %d , e assim não mostra nenhum resultado , e então seu código com algumas modificações poderia ser assim :
#include <stdio.h> #include <windows.h> int potencia(int,int); int main() { int numero, expoente, resultado; printf("Informe o numero da base: "); scanf ("%d", &numero); printf("Informe o expoente: "); scanf ("%d", &expoente); resultado = potencia (numero, expoente); printf("\nResultado da potencia e: %d\n\n\n", resultado); FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)); // aqui é igual o comando getch(); WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), INFINITE); // porém sem usar a biblioteca conio.h return 32768; } int potencia (int num, int exp) { if( exp == 0 ) { return 1; } else { num = num * potencia( num, exp-1 ); return num; } }
caramba kkk nao acredito que esqueci algo estão simples muito obrigado
- 1
-
Gente eu tenho que fazer uma função recursiva em C pra calcular uma potencia. Eu fiz mas ele nao esta fazendo a conta, nao sei o que esta de errado. Alguem pode me ajudar?
<CODE> int potencia (int num, int exp){ if (exp == 0) { return 1; } else { num = num * potencia (num, exp-1); return num; } } int main (){ int numero, expoente, resultado; printf ("Informe o numero da base: "); scanf ("%d", &numero); printf ("Informe o expoente: "); scanf ("%d", &expoente); resultado = potencia (numero, expoente); printf ("Resultado da potencia e: ", resultado); }
- 1
-
1 minuto atrás, Midori disse:
aii funcionou de novo, nao sabia que tinha que deixar os parametros dessa forma
desculpa
mas obrigado!!
- 1
-
@Midori funcionou!!
mas em relação a usar o fgets, aqui no devcc++ ele da erro, ele rodou so com o gets
é problema do compilador?
-
então eu tenho que fazer esse exercicio, mas ela so ta lendo a minha string, ela nao ta imprimindo. o que tem de errado no meu codigo?
lembrando q nao posso utilizar a função strcopy#include <stdio.h> //Faça um programa que leia uma string de até 50 caracteres e faça uma cópia para outra string. //Para isso, o programa deve implementar um procedimento que execute essa operação, //recebendo por parâmetro a string de origem e a de destino. Ao final, o programa deve exibir as strings na tela. //função void copiarString (char *original, char *copia){ while (*original != '\0'){ *original = *copia; original++; copia++; } *original = '\0'; } int main (){ char str1 [50]; char str2 [50]; printf ("Informe a string: "); gets(str1); copiarString (str1, str2); printf ("%s", str2); }
- 1
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Exercicio Lista encadeada em C
em C/C#/C++
Postado
Tenho que fazer esse programa: mas eu acho q a logica esta certa, so que to tendo alguns problemas na sintaxe. alguem poderia me dar uma luz?
Faça um programa para preenchimento de uma lista encadeada de produtos (código, nome e preço), utilizando como base as funções apresentadas. Você deve apresentar ao usuário um menu com as seguintes opções:
1- Inserir produto
2- Exibir todos os produtos
3- Buscar um produto pelo código
4- Remover um produto
5- Sair
<CODE>
#include <stdio.h>
#include <stdlib.h>
#include <string.h >
typedef struct produto{
int cod;
float preco;
char nome[10];
struct no *prox;
}produto;
int op;
produto prod;
produto *inicioL;
void cria_lista () {
inicioL = NULL;
}
int lista_vazia () {
if (inicioL== NULL)
return 1;
return 0;
}
produto* cria_prod (int cod, float preco, char *nome){
produto *aux;
aux = (produto*) malloc(sizeof(produto));
if (aux!=NULL){
aux->cod= cod;
aux->preco= preco;
strcpy(aux->nome,nome);
aux->prox=NULL;
}
return aux;
}
void inserirProd (int cod, float preco, char *nome){
produto* aux;
aux = cria_prod (cod, preco, nome);
aux->prox= inicioL;
inicioL = aux;
}
void exibir (){
produto *aux;
aux = inicioL;
while (aux!=NULL){
printf("%d", aux->cod);
printf("%f", aux->preco);
printf("%c", aux->nome);
aux = aux->prox;
}
}
void buscarProd (int cod){
produto *aux;
aux = inicioL;
while (aux!=NULL){
printf("%d", aux->cod);
aux = aux->prox;
}
}
void remover (int cod){
produto* ant = NULL;
produto* aux = inicioL;
if(!listaVazia()){
while(aux!=NULL) && (aux->cod!=cod){
ant= aux;
aux = aux->prox;
}
if (aux==NULL){
printf("Produto nao encontrado!");
}
else{
if(ant==NULL)
inicioL= aux->prox;
else
ant->prox=aux->prox;
free(aux);
}
}
else{
printf("Nao tem produtos cadastrados!");
}
int main(){
printf ("1-Inserir produto \n2-Exibir todos os produtos \n3-Buscar um produto pelo código \n4-Remover um produto\n5-Sair");
printf("\n\nDigite sua opcao!");
scanf("%d", &op);
switch (op){
case 1:
printf("Informe o nome do produto: ");
fflush(stdin);
gets(prod.nome);
printf("Informe o preco do produto: ");
scanf ("%d", &prod.preco);
printf("Informe o codigo do produto:");
scanf ("%d", &prod.cod);
inserirProd (int cod, float preco, char nome);
break;
case 2:
exibir ();
break;
case 3:
buscarProd (int cod);
break;
case 4:
printf("Qual produto deseja remover?");
scanf("%d", &cod);
remover (int cod);
break;
case 5:
printf("Saindo...");
default :
printf ("Opcao invalida!\n");
}
}