Zackk
-
Total de itens
16 -
Registro em
-
Última visita
Posts postados por Zackk
-
-
Obrigado
Funcionou, eu tinha esquecido que o vetor precisava ser um ponteiro para ser dinãmico.
Thanks
-
/*2) Dada uma lista simplesmente encadeada, faça a função Lista *inverte(Lista *l)
que inverte a ordem dos elementos da lista, ou seja, o primeiro passa a ser o último, etc.*/
#include<stdio.h> #include<stdlib.h> struct Lista{ int contador; int info; struct Lista *prox; }; typedef struct Lista lista; lista *lst_cria(){ return NULL; } void lst_imprime(lista *l){ printf("\nImpressao da lista\n"); for(lista *p = l; p != NULL; p = p -> prox){ printf("\nInfo : %d", p -> info); } } void *lst_inverte(lista *l){ int cont = l -> contador; int vet = (int*) malloc(cont * sizeof(int)); lista *novo = (lista*) malloc(sizeof(lista)); int j = 0; for(lista *p = l; p != NULL; p = p -> prox){ vet[j++] = p->info; } for(lista *p = l; p != NULL; p = p -> prox){ p -> info = vet[(l -> contador--)]; } } lista* lst_insere(lista *l, int valor){ lista *novo = (lista*) malloc(sizeof(lista)); novo -> prox = l; novo -> info = valor; novo -> contador++; system("pause"); return novo; } int main(){ Lista *l; l = lst_cria(); l -> contador = 0; int h = 0; do{ l = lst_insere(l, h++); }while(h < 5); lst_inverte(l); lst_imprime(l); return 0; }
oque eu to fazendo de errado? -
/*1) Implemente a função Lista *insere(Lista *l, int valor, int pos) que insere o elemento valor na posição pos da lista simplesmente encadeada.
Para isso, um novo nó deve ser alocado e ligado aos demais. O valor de pos é um número, que ser for 2, por exemplo, indica que o novo nó alocado será o segundo nó da lista. */
#include<stdio.h> #include<stdlib.h> struct Lista{ int info; int posi; struct Lista* prox; //prox recebe o endereço de memória do nó anterior da lista }; typedef struct Lista lista; lista* lst_cria(){ return NULL; } lista* lst_insere(lista *l, int valor, int pos){ if((pos - 1) > l -> posi){ lista *novo = (lista*) malloc(sizeof(lista)); novo -> prox = l; novo -> info = valor; novo -> posi++; printf("\nPosicao desejada inexistente!\nInserido na posicao %d\n",novo -> posi); return novo; }else{ } system("pause"); system("cls"); } lista* lst_imprime(lista *l){ system("cls"); lista* p; for(p = l; p != NULL; p = p -> prox){ printf("\nInfo = %d\n",p -> info); } } int main(){ int pos, valor; Lista* l; l = lst_cria(); l -> posi = 0; do{ do{ printf("\n\nInforme a posicao ou -1 para sair : "); scanf("%d",&pos); if(pos == -1){ exit(0); } if(pos <= 0){ printf("Valor invalido, Insira novamente\n\n"); }else{ printf("Informe o valor a ser inserido : "); scanf("%d",&valor); } }while(pos <= 0); lst_insere(l, valor, pos); }while(1); lst_imprime(l); system("pause"); return 0; }
Por favor alguém me ajude, eu fiz isso, mais não to conseguindo substituir a posição desejada pelo usuário, tipo quando ele pedir posição 2 e a lista tiver 3, eu pegar a 2 e colocar na 4 e o valor que ele deu na 2, entendeu?Por favor me ajudem
-
Implemente a função raízes, que calcula as raízes de uma equação do segundo grau,
do tipo ax2 + bx + c = 0. Essa função deve obedecer ao protótipo:
int raizes (float a, float b, float c, float * x1, float * x2);
onde a, b e c representam os coeficientes da equação, e x1 e x2 são ponteiros para as variáveis
onde devem ser guardadas as raízes da equação. A função deve retornar o número de raízes
reais que a equação possui.
Observações:
(a) Se as raízes forem reais e distintas, x1 deve guardar a raiz de menor valor e x2 a de maior
valor e a função deve retornar 2.
(B) Se as raízes forem reais e iguais x1 = x2 e a função deve retornar 1.
© Se não existirem raízes reais, x1 = 0 e x2 = 0 e a função deve retornar 0.
(d) Para o cálculo da raiz quadrada de um número, utilize a função sqrt definida na biblioteca
padrão de funções do C. Essa função está definida no arquivo de cabeçalhos math.h e tem o
protótipo
double sqrt (double n);
Função main#include<stdio.h> #include<math.h> #include"raizes.h" int main(){ int a, b, c; float x1, x2; printf("Algoritmo para resolver equacao ax2 + bx + c = 0:"); printf("\nInforme o valor de A :\n"); scanf("%d",&a); printf("\nInforme o valor de B :\n"); scanf("%d",&b); printf("\nInforme o valor de C :\n"); scanf("%d",&c); raizes(a,b,c,&x1,&x2); return 0; }
Função Raizesint raizes (int a, int b, int c, float * x1, float * x2){ float delta; delta = pow(b,2) - 4 * (a*c); if(delta < 0){ return 0; }else{ if(delta == 0){ printf("Duas raizes reais e iguais:"); *x1 = ((-b) + pow(delta, 0.5))/2 * a; return 1; }else{ printf("\n\nDuas raizes reais e distintas:"); *x1 = ((-b) + pow(delta, 0.5))/2 * a; *x2 = -b - pow(delta, 0.5)/2*a; if(*x1 > *x2){ delta = *x1; *x1 = *x2; *x2 = delta; printf("\n\nAs raizes são: [%.2f] e [%.2f]",x1,x2); } } } }
Eu só quero saber se eu fiz exatamente oque o exercicio propos, por favor me digam , preciso entregar esse exercicio hoje de noite.
Obrigado
-
Valeu, Obrigado
Eu to fazendo tanto código java que acabei me confundindo nesses detalhes
Obrigado, deu certinho.
-
alguém me ajuda por favor, ta dando erro para passar vetor por referencia.
/*11. Implemente a função negativos, que recebe como parâmetro um vetor de números de ponto flutuante (vet) de tamanho n e retorna quantos números negativos estão armazenados nesse vetor. Essa função deve obedecer ao protótipo: int negativos (int n, float * vet); */ #include<stdio.h> int negativos(int n, float *vet){ for(int i = 1; i <= 20; i++){ if(vet[i] < 0){ n++; } } return n; } int main(){ int n = 0; float vet[20]; for(int h = 1; h <= 20; h++){ printf("\nInsira o valor para a posicao %d :",h); scanf("f",&vet[h]); } printf("há %d numeros negativos!",negativos(n, &vet)); return 0; }
-
Obrigado, funcionou direitinho
Valeu pela ajuda
-
oiiii
então, eu to fazendo um programa que funciona como uma calculadora, mais ai eu coloquei isso em uma função e salvei como uma biblioteca (calculadora.h) e coloquei na mesma pasta do programa que estou criando e queria saber como inclui-la no meu programa.
De preferência se tiver um jeito que ele inclua quando o arquivo estiver na mesma pasta é melhor, porque tenho que entregar o código fonte e a biblioteca.
alguém me ajude. obrigado.
-
Oi td bom?
Eu sou iniciante em java e estava fazendo um código que passaram como tarefa, mais ele não está compilando.
Primeiro eu o fiz usando o Netbeans e ele compilou tudo certinho e executou, mais eu tenho que faze-lo executar pelo prompt do windows, e ele não está compilando no prompt, ele da erro e aponta para o public class, olha o meu código.
public Class MC07{ public static void main(String[] args) { byte i = 37, j = 42, k = 42; System.out.println("O valor das variáveis\ni = 37\nj = 42\nk = 42"); System.out.println("Maior que..."); System.out.println("i > j = " + (i > j) + "\nj > i = " + (j > i) + "\nk > j = " + (k > j)); System.out.println("Maior ou igual a..."); System.out.println("i >= j = " + (i >= j) + "\nj >= i = " + (j >= i) + "\nk >= j = " + (k >= j)); System.out.println("Menor que..."); System.out.println("i < j = " + (i < j) + "\nj < i = " + (j < i) + "\nk < j = " + (k < j)); System.out.println("Menor ou igual a..."); System.out.println("i <= j = " + (i <= j) + "\nj <= i = " + (j <= i)); } }
Ele está salvo em um arquivo chamado MC07.java, salvei usando o bloco de notas como todos os arquivos, não como txt.alguém poderia me ajudar? ele funciona no netbeans mais não no prompt.
Desde já obrigado.
-
#include<stdio.h> #include<stdlib.h> float abs(float x){ if(x < 0) x = -(x); return x; } int main(){ float solucao = 0, xini = 0, xnovo = 0, fxnovo = 0, fdxnovo = 0, e = 0; //fdxnovo = derivada de fdxnovo int k = 0; printf("Digite o x Inicial: "); scanf("%f",&xnovo); printf("Digite a precisao: "); scanf("%f",&e); do{ xini = xnovo; fxnovo = ( xini * xini * xini) - 9. * xini + 3.; //Inserir sua função // principal fdxnovo = 3 * (xini * xini) - 9; //Inserir a derivada da função principal xnovo = xini - (fxnovo / fdxnovo); k += 1; printf("\nIteracao = %d",k); printf("\nxini = %f\nxnovo = %f",xini, xnovo); }while(abs(xnovo - xini) >= e || abs(fxnovo) >= e); printf("\n\nxnovo - xini = %f\n",xnovo - xini); printf("\nA solucao final é: %f\n",xnovo); return 0; }
Eu fiz isso, mais tive ajuda, então não sei direito se está certo, alguém pode me dizer se é isso mesmo que o exercicio quer e se puder colocar alguns comentários no comentario para me ajudar a entender, obrigado. -
A questão é aquela da imagem, e eu não sei fazer isso, eu não sei fazer aquele calculo matemático da função.
-
Por favor me ajudem a fazer esse algoritmo em C, Vale nota e eu não faço ideia de como fazer esse calculo matemático.
E tem que fazer esse calculo matemático como uma função, o algoritmo principal chama essa função e ele realiza os calculos.
Obrigado
-
Para esse algoritmo preciso usar vetores, a função #define e criar minhas funções sempre que possivel.
/*01) Faça um programa que leia a idade de 10 alunos e armazene num vetor. Depois imprima a média de idade da turma, o aluno mais velho,
o aluno mais novo, e o total de alunos com mais de 18 anos.*/
#include<stdio.h>
#include<stdlib.h>
int med = 0;
float media(float n1,int j){
med = n1/j;
return med;
}
int main(){
int alunos[10], maiorid = 0, cont = 0, i,menorid = 150;
float somaid = 0;
for(i = 0; i < 10; i++){
do{
printf("\n\nInforme a idade o aluno %d : ",i + 1);
scanf("%d",&alunos);
if(alunos < 0 || alunos > 150){
printf("\n\n\aIdade invalida!!");
}
}while(alunos < 0 || alunos > 150);
somaid += alunos;
if(maiorid < alunos){
maiorid = alunos;
}
if(menorid > alunos){
menorid = alunos;
}
if(alunos > 18){
cont++;
}
}
system("cls");
printf("\n\nA media de idade dos alunos é : %.2f",media(somaid/i));
printf("\nA maior idade foi : %d\nA menor idade foi : %d\nHa %d alunos com mais de 18 anos",maiorid,menorid,cont);
}
Ele esta dando erro e não sei como usar o #define,se alguém pudesse me ajudar a usar o #define e ele esta dando erro na linha 11 e 39.
Ah e eu uso o compilado codeblocks.
Se alguém puder me ajudar, eu agradeceria, obrigado.
-
Obrigado, funcionou perfeitamente..
-
Faça um algoritmo que carregue um vetor de 20 posições com numeros inteiros e que mostre os numeros que aparecem mais de uma vez e quantas vezes cada numero se repete, mostrando um relatório da seguinte forma:
O numero 5 aparece duas vezes no vetor, nas posições 0,12
O numero 4 aparece duas vezes no vetor, nas posições 1,16
O numero 3 aparece três vezes no vetor, nas posições 2,7,15
O numero 18 aparece duas vezes no vetor, nas posições 3,18
Por favor me ajudem, eu consegui fazer, mais ele mostra o numero repetido mais de uma vez, por exemplo : O numero 5 a mensagem aparecia quando o vetor estivesse na posição 0 e mostraria aquela mensagem e de novo quando o vetor estiver na posição 12, então está repetindo sem necessidade, e eu não sei como arrumar isso.
Aqui está o algoritmo em C++ com este defeito, por favor me ajudem.
Eu preciso fazer isso até quarta-feira que é a minha prova, e esse é o unico que eu não consigo terminar.
#include<stdio.h> #include<stdlib.h> int main(int argc, char** argv){ int i = 0, vet[20], cont = 1, j,h = 0,l; for(i = 0; i < 20; i++){ printf("\n\nDigite o numero para a posicao %d : ",i); scanf("%d",&vet[i]); } for(i = 0; i < 20; i++){ for(j = 0; j <= 1; j++){ for(h = 0; h < 20; h++){ if(i != h){ if(vet[i] == vet[h]){ if(j == 0){ cont++; }else{ printf(",%d",h); } } } } if(j == 0){ if(cont > 2){ printf("\n\nO numero [%d] aparece %d vezes no vetor, nas posicoes : %d",vet[i],cont,i); } }else{ cont = 1; } } } system("pause"); return 0; }
Desde já obrigado.
Session em JSF
em Java
Postado