
newnoob
Membros-
Total de itens
48 -
Registro em
-
Última visita
Tudo que newnoob postou
-
compilei esse codigo que você me mando, mas não ta compilando o dev não acusa erro nenhum, mas eparece escrito assim,empty character constant. nem aparece quela tela pra digita, sabe o que pode ser? valeu
-
andei dando uma revizada no programa coloquei as setas, agora ele já ta compilando, mas na hora que eu digito aparece um erro que o programa precisa ser fechado, o programa serve para verificar se o numero de parenteses da string esta certo ou não, vo posta o codigo refeito aqui pra verem. se puderem me da uma ajuda eu agradeço obrigado. #include <stdio.h> #include <stdlib.h> #define TAM 100 typedef struct { int topo; char dado[TAM]; }pilha_t; char pop(pilha_t *pilha){ if(pilha -> topo == -1){ printf("pilha vazia"); return 1; }else{ pilha -> topo--; return pilha -> dado[pilha -> topo + 1]; } } void push( pilha_t *pilha, char novo_elemento){ if (pilha -> topo < TAM){ pilha -> topo++; pilha -> dado[pilha -> topo] = novo_elemento; }else{ printf("pilha cheia"); } return; } bool empty(pilha_t *pilha){ if(pilha -> topo == -1){ return true; }else{ return false; } } bool balanced_parentheses(char *string){ pilha_t pilha; int i; int cont = 0; while (string != ''){ for(i = 0; i < TAM; i++){ if(string[i] == '('){ cont ++; }else if(string[i] == ')'){ cont--; } if (cont < 0){ return false; } } if(cont != 0){ return false; }else{ return true; } } } int main(){ char *string; printf("Digite a expressao!\n"); scanf("%s", &string); if(balanced_parentheses(string)){ printf("Parenteses corretos"); }else{ printf("parenteses errados"); } system ("pause"); return 0; }
-
andei dando uma revizada no programa coloquei as setas, agora ele já ta compilando, mas na hora que eu digito aparece um erro que o programa precisa ser fechado, o programa serve para verificar se o numero de parenteses da string esta certo ou não, vo posta o codigo refeito aqui pra verem. se puderem me da uma ajuda eu agradeço obrigado. #include <stdio.h> #include <stdlib.h> #define TAM 100 typedef struct { int topo; char dado[TAM]; }pilha_t; char pop(pilha_t *pilha){ if(pilha -> topo == -1){ printf("pilha vazia"); return 1; }else{ pilha -> topo--; return pilha -> dado[pilha -> topo + 1]; } } void push( pilha_t *pilha, char novo_elemento){ if (pilha -> topo < TAM){ pilha -> topo++; pilha -> dado[pilha -> topo] = novo_elemento; }else{ printf("pilha cheia"); } return; } bool empty(pilha_t *pilha){ if(pilha -> topo == -1){ return true; }else{ return false; } } bool balanced_parentheses(char *string){ pilha_t pilha; int i; int cont = 0; while (string != ''){ for(i = 0; i < TAM; i++){ if(string[i] == '('){ cont ++; }else if(string[i] == ')'){ cont--; } if (cont < 0){ return false; } } if(cont != 0){ return false; }else{ return true; } } } int main(){ char *string; printf("Digite a expressao!\n"); scanf("%s", &string); if(balanced_parentheses(string)){ printf("Parenteses corretos"); }else{ printf("parenteses errados"); } system ("pause"); return 0; }
-
pessoal, to precisando de uma ajuda , to fazendo um programa que utiliza pilhas, tenho que cria a função pra empilha,desempilha,verificar se a pilha esta vazia e verificar se o numero de parenteses da string estão balanceados, se puderem me ajudar eu agradeço, desde já muito obrigado valeu #include <stdio.h> #include <stdlib.h> #define TAM 100 typedef struct { int topo; char dado[TAM]; }pilha_t; char pop(pilha_t *pilha){ if(*pilha.topo == -1){ printf("pilha vazia"); return; }else{ pilha.topo--; return pilha.dado[pilha.topo + 1]; } } void push( pilha_t *pilha, char novo_elemento){ if (*pilha.topo < TAM){ pilha.topo++; pilha.dado[ilha.topo] = novo_elemento; }else{ printf("pilha cheia"); } return; } boolean empty(pilha_t *pilha){ if(*pilha.topo == -1){ return true; }else{ return false; } } boolean balanced_parentheses(char *string){ pilha_t pilha; int i; int cont = 0; while (*string != ''){ for(i = 0; i < TAM; i++){ if(s[i] == '('){ cont ++; }elseif(s[i] == ')'){ cont--; } if (cont < 0){ return false; } }//for if(cont != 0){ return false; }else{ return true; } }//while } int main(){ char *s; printf("Digite a expressao.\n"); scanf("%s", &*s); if(balanced_parentheses(*s)){ printf("Parenteses corretos"); }else{ printf("parenteses errados"); } return 0; }
-
cara, ate que enfim consegui valeu mesmo muito obrigado foi de grande ajuda agora tenho outro programa bem mais dificil, qualquer duvida eu apareço aqui
-
fiz o que você falo, abri um novo codigo fonte, e coloquei todas as variaveis como quantiade_al, pra ver se era esse o problema, mas não ta acontecendo ainda a mesma coisa, depois dedigita as notas o programa não calcula a media e fecha, #include <stdlib.h> #include <stdio.h> typedef struct { char nome[80]; float nota; }aluno_t; float media_turma (aluno_t *turma, int quantidade_al) { int i = 0; float media,soma = 0.0; for (i=0;i< quantidade_al ;i++) { printf ("\nDigite a %d nota para fazer a media:\n", i+1); scanf ("%f", &turma.nota); soma = soma + turma.nota; } return soma/quantidade_al; } int main() { int quantidade_al,i; aluno_t *turma; printf ("\nDigite a quantidade de alunos que a turma possui:\n"); scanf ("%d", &quantidade_al); turma = (aluno_t*)malloc(quantidade_al*sizeof(aluno_t)); printf ("\nMedia:%f",media_turma(turma,quantidade_al)); free (turma); getchar(); return (0); }
-
powagora não entendi, com a diferença de recompila e executa o programa de novo? só sei que fechei e apertei f9 de novo.
-
não, eu to usando o dev c++, não sei se deve ser por isso, acho que não tem nada a ve, mas ali dentro da função ta tudo certo a forma de calcular a media, ?
-
cara fiz a modificação que você me mando, mas mesmo assim ele só pede as notas, na hora de fazer a media ele não faz, sera que tem alguma coisa errada dentro da função pra fazer a media? sera que to armazenando os valores no lugar certo? e a media ta certa a formula pra calcula ela? aqui vo posta de novo o programa já com as modificações vlw #include <stdlib.h> #include <stdio.h> typedef struct { char nome[80]; float nota; }aluno_t; float media_turma (aluno_t *turma, int quantidade_al) { int i = 0; float media,soma = 0.0; for (i=0;i< quantidade_al;i++) { printf ("\nDigite a %d nota para fazer a media:\n", i+1); scanf ("%f", &turma[i].nota); soma = soma + turma[i].nota; } return soma/quantidade_al; } int main() { int q_alunos,i; aluno_t *turma; printf ("\nDigite a quantidade de alunos que a turma possui:\n"); scanf ("%d", &q_alunos); turma = (aluno_t*)malloc(q_alunos*sizeof(aluno_t)); printf ("\nMedia:%f",media_turma(turma,q_alunos)); free (turma); getchar(); return (0); }
-
galera, to fazendo um program para calcular a media de uma turma, eu peçopra digitar o numero de alunos e as notas de cada aluno, o programa ta compilando mas não ta fazendo as medias, eu digio as medias, mas dai ele para, não faz u calculo da media, acho que devo ta chamando a função errado ou algo assim, vo posta o codigo aqui em baixo para ver se alguém pode me ajuda. obrigado. #include <stdlib.h> #include <stdio.h> typedef struct { char nome[80]; float nota; }aluno_t; float media_turma (aluno_t *turma, int quantidade_al) { int i = 0; float media,soma = 0.0; for (i=0;i< quantidade_al;i++) { printf ("\nDigite a nota para fazer a media:\n\r"); scanf ("%f", &turma[i].nota); soma = soma + turma[i].nota; } return soma/quantidade_al; } int main() { int q_alunos,i; aluno_t *turma; printf ("\nDigite a quantidade de alunos que a turma possui:\n"); scanf ("%d", &q_alunos); turma = (aluno_t*)malloc(q_alunos*sizeof(aluno_t)); media_turma(turma,q_alunos); free (turma); system ("pause"); return (0); }
-
agora consegui faze mais o menos o que eu quero #include <stdio.h> #include <stdlib.h> #define STACKSIZE 100 #define MAX[100] struct stack{//definição da estrutura// char S[STACKSIZE]; int top; }elements; //função para verificar se a pilha não esta vazia// empty (*ps){ if (ps->topo==-1){ return true; } else { return false; } } pop(*p){//função para verificar se a pilha não esta vazia// if(empty(ps)){ printf ("underflow"); exit(1);} return (ps->elements[ps->top--); } push(*stack,int top)//função para verificar se a pilha não esta cheia// { if(stack->top == STACKSIZE 1){ printf ("\nNao e possivel:PILHA CHEIA(OVERFLOW)!"); exit (1); }else{ stack->top++; stack->elements[stack->top].top); return; } } stacktop(pstack)//função de retorno de elementos da pilha// { if(empty(stack){ printf ("\nPilha vazia!"); exit(1); } else{ return pstack -> elements[pstack->top]; } } float eval(exp)// função de retorno posfixa { int c,position; float operando1,operando2,value; struct stack opndstack; opndstack.top=-1; for (position = 0(c = exp[position]) != '', position ++){ if (isdigit©) { push (&opndstack,(float)(c-'0')); }else { operando2 = pop(&opndstack); operando1 = pop(&opndstack); value = operando (c,operando1,operando2); push(&opndstack,value); return pop (opndstack) } } } int main()// inicio do programa principal// { char exp[MAX]; int position = 0; while ((exp[position++] = getchar())!='\n'); exp (--position)= ''; printf ("\n%s%s","A expressao posfixaoriginal e", exp); printf ("\n%f\n", eval(exp)); system ("pause"); } alem dele não estar funcionando falta fazer duas coisas que eu não to conseguindo e queria ver se algum pode me ajuda falta fazer uma função que transforma de infixa praprefixa e uma funcão com switch, case para ordem de precedenci '+','-','/','*','$' se alguém puder dizer onde esta meu erro no programa e me dar uma ajuda nessas duas funções eu agradeço valeu
-
ainda naome sobro tempo pratenta implementa
-
galera to precisando de uma calculadora pos fixa que calcule as seguites funções: adição,subtração.multiplicação,divisão e potencia se alguém ai tive algum codigo em C eu agradeço, por que to precisndo urgente valeu galera obrigado
-
galera tenho uma questo que não consigo resolve: Seja um texto contendo vários nomes armazenado em uma matriz 30 X 40, onde cada linha da matriz contém um nome completo de uma pessoa. As palavras de cada nome são separadas por um espaço branco, sendo que o último sobrenome é seguido por um ‘’. Fazer um programa contendo as seguintes funções: a) leitura(): ler todos os nomes completos, armazenando-os na matriz. B) ord_mat(): ordena a matriz de nomes completos. c) maior_nome(): imprime o maior nome, caso tenha empate, deve imprimir todos os maiores nomes. d) armaz_prim_nome(): percorrer a matriz de nomes e armazenar o primeiro nome de cada pessoa em um vetor de estruturas, bem como o índice da linha da matriz onde este apareceu e o número de ocorrências do nome recebe 1. IMPORTANTE: Caso o primeiro nome já tenha aparecido antes (ex. Ana Maria Cruz e Ana Paula de Oliveira), não deve ser armazenado novamente, porém a linha da matriz onde este aparece deve ser armazenada e o número de ocorrências deve ser incrementado. Supor que cada nome aparece no máximo 10 vezes. e) proc_nome(): le um primeiro nome (ex. José) e imprime o nome completo de todas as pessoas que iniciam com esse nome (ex.: José da Silva, José de Alencar, José Augusto dos Anjos, etc.). f) maior_ocorr(): imprime o primeiro nome que mais apareceu no texto, se houver empate, deve imprimir todos. Observações: · A definição da estrutura prim_nome é a seguinte: struct prim_nome { char pnome[11]; // primeiro nome int linhas[10]; // linhas onde ocorre primeiro nome int n_ocor; // número de ocorrências do primeiro nome }; · A declaração do vetor de primeiros nomes é: struct prim_nome vet_nome[30]; · Utilize as funções para manipulação de strings definidas em string.h. vo posta o codigo aqui paravcs verem o que eu já consegui faze e ver se alguém consegue faze ele funciona, to deseperado, por favor me ajudem. #include <stdlib.h> #include <stdio.h> #include <string.h> typedef struct { char pnome[11]; int linhas[11]; int n_ocor; }prim_nome; void leitura(){ char string [30] [40]; int i=0; prim_nome vet_nome[30]; char resp,s; for (i = 0; i < 30; i++){ printf ("\nDigite um o nome da %da pessoa:", i + 1); scanf ("%s", &vet_nome[30].pnome); printf ("\nDigite o sobrenome da %da pessoa:"); scanf ("%s",&string[30]); strcat (vet_nome[30].pnome,string); system ("cls"); printf ("deseja inserir mais nomes? s/n?"); scanf ("%s", &resp); if (resp == 's') scanf ("%s", &string); else { printf ("\nFim da coleta de nomes!"); i=30; } } printf ("\nOs nomes que voce digitou foram:\n"); for (i = 0; i < 30; i++){ printf ("\n%s", string); } } void ord_mat(int matriz[], int tam){ char string[30] [40]; int temp, i, j; for(i = 0; i < tam; i++){ for(j = 0; j < tam; j++){ if(matriz < matriz[j]){ temp = matriz; matriz = matriz[j]; matriz[j] = temp; } } } } void maior_nome(){ char string [30] [40]; int ordem = strlen (string); } int main() { int i = 0; leitura (); ord_mat(valores, tamanho); puts("\n"); for(i = 0; i < 30; i++){ printf("%d ", valores); } system ("pause"); } int strcmp (char *string, char *string[i+1]) desde já agradeço a vocês, o melhor forum da net vlw mesmo
-
é porque eu quero fazer o teste pra ver se ele da certo dos dois jeitos, quando esta ordenado e quando esta desordenado
-
tentei faze aquilo que você falo, mas só aparece que esta desordenado, mas o vetor ta ordenado, tentei bota chaves ali, mas também não deu certo ali na hora de dizer o ultimo elemento do vetor o que é isso ''? eu não usei bool no tipo de vetor, botei int mesmo
-
to fazendo um programa em C que diz se um vetor esta ordenado ou não com recursividade, mas ta dando um erro, vo posta uma parte do codigo se alguém puder me ajudar eu agradeço #include "funcao.h" int esta_ordenado (int v[], int n) { int ini = 0; int fim = n - 1; while (ini <= fim){ if (ini <= fim); return 1; else if (ini > fim); return 0; } } essa não é a main é só u funcao, ta aparecendo assim "sintax error before "else". alguém sabe como arruma isso e aproveitando o resto do codigo esta certo? vlw
-
o codigo main é #include <stdlib.h> #include <stdio.h> #include "funcoes.h" int main (void) { printf ("\nO resultado da potencia e: %f", resultado); system ("pause"); return 0; } float potencia (float base, int expoente); float potencia (float base, int expoente) { resultado = base*base; } to com duvida nessa ultima parte, não consigo pensar numa formula para para calcular a potencia vlw galera
-
é isso mesmo eu preciso q ele seja com recursividade
-
galera, boa tarde preciso de uma função para calcular potencia em C já abri o projeto só q não tenho nem ideia de como eu faço pra criar uma função preciso que seja função por referencia vlw ai obrigado
-
mal aew, eu me enganei ta compilando sim, mas por exemplo c você coloca o numero de elementos do vetor = a 5 ai você coloca só dois elementos iguais , por exemplo 7 e 9,7 e 9,7 e 9,7 e 9,7 e 9 não aparece 7 e 9 só uma vez, mas aparece as 5, mas c você repete o numero só duas vezes ele aparece normal, você sabe o q pod c? eu tentei faze algumas mudanças pra tenta arruma isso, mas não deu certo. vlw de novo cara
-
cara eu tentei mas não ta dando certo , ta aparecendo o lixo da memoria, você tento compila ele?
-
galera sou novo por aqui e preciso de ajuda em c, tenho q fazer um trabalho pra faculdade e to precisando de ajuda, tenho q fazer um programa q leia N int e coloca em dois vetores, um vetor A e um vetor B e depois com pare e diga qunatos elementos de A são iguais aos elementos do B, parei na parte de comparar e n aum to conseguindo faze, vo posta o codigo aqui em baixo e se alguém puder me ajudar eu agradeço //janrie carlos tidres #include <stdio.h> #include <stdlib.h> int main() { printf ("\n**********************************\n"); printf ("\nPrograma para calculo com vetores!\n"); printf ("\n**********************************\n"); int i,tam,EleIgual; // armazena os valores das posições no vettor printf("\nQantos numeros o vetor possui?\n"); scanf ("%d", &tam); int vetor_a[tam],vetor_b[tam]; for (i = 0; i < tam; i++) { // ficam todos os valores do primeiro vetor printf ("\nDigite o valor numero %d para o primeiro vetor:\n", i+1); scanf ("%d", &vetor_a[i]); } for (i = 0; i < tam; i++) { // ficam todos os valores do segundo vetor printf ("\nDigite o valor numero %d para o segundo vetor:\n", i+1); scanf ("%d", &vetor_b[i]); } // mostra quantos elementos iguais for (i = 0; i < tam; i++){ if (vetor_a[i] == vetor_b[i]); printf ("\nOs elementos que se repetem são %d", EleIgual); } system ("pause"); }