oromotoceu
-
Posts
27 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por oromotoceu
-
-
13 horas atrás, devair1010 disse:
/* * 3) Faça um programa que leia uma quantidade de cartões determinada pelo * digitador, contendo a idade e o sexo de uma pessoa (1-Masculino, 2-Feminino). * Calcule e imprima a idade média destas pessoas, quantas pessoas do sexo * feminino estão na faixa dos 18 aos 25 anos e número total de pessoas do sexo * masculino. */ #include <stdio.h> #include <string.h> int main() { int quantidade, idade, sexo; int numMulher=0, numHomem=0, idadeTotal=0; int numPessoa=0; int a; ///while( a > 0 ) não precisa desse loop ///{ puts("Quantidade de cartoes determinada pelo digitador: "); scanf("%d", &quantidade); do { puts("Entre com a idade: "); scanf("%d", &idade); do { puts("Entre com o sexo: "); /// putzgrila scanf("%d", &sexo); } while( sexo != 1 && sexo != 2 ); /// 1 masc 2 fem idadeTotal += idade; numPessoa++; if( sexo == 2 && idade >= 18 && idade <= 25 ) { numMulher++; } else if( sexo == 1 ) numHomem++; }while( quantidade > numPessoa ); printf("\nA idade media e' %5.2f.\ \nO total de mulheres de 18 aos 25 anos e' %5d. \ \nO numero de homens e' %5d.\n\n", (float) idadeTotal / numPessoa , numMulher,numHomem); ///} return 0; }
ok eu refiz o código
#include <stdio.h>
int main(void) {
int quantidade, idade, sexo, numPessoa;
int numMulher = 0;
int numHomem = 0;
int idadeTotal = 0;
int num = 1;printf("Quantidade de cartoes determinada pelo digitador: ");
scanf("%d", &quantidade);
numPessoa = quantidade;
while (quantidade > 0) {
printf("Entre com a idade da pessoa do cartao numero %d: ", num);
scanf("%d", &idade);
idadeTotal += idade;
printf("Entre com o sexo da pessoa do cartao numero %d: ", num);
scanf("%d", &sexo);
if (sexo == 1) {
numHomem += 1;
}
else if (sexo == 2) {
if (18 <= idade && idade <= 25)
numMulher += 1;
}
quantidade--;
num++;
}printf("A idade media e %.1f\n", ( (float) idadeTotal) / numPessoa);
printf("O total de mulheres de 18 aos 25 anos e %d.\n", numMulher );
printf("\nO numero de homens e %d.\n", numHomem);
return 0;
}- 1
-
16 horas atrás, devair1010 disse:
@Eduardo V se , dentro da função , você colocar uma variável para receber o retorno
Algoritmo "funcao ler outra" funcao lerTotalc : real Var combustiveln : real trechototal : real Inicio escreva("distancia ") leia( trechototal ) combustiveln <- trechototal * 3.6 retorne combustiveln fimfuncao funcao lerCombp : real // combustivel presente no avião Var combustivelp, combustiveln : real totalcombustivel : real ret : real Inicio combustiveln <- lerTotalc escreval("valor retornado da Função") escreval("que é o total de combustivel consumido",combustiveln) escreval("Quantos litros de combustivel já tem no avião?") leia(combustivelp) se combustivelp = 0 entao totalcombustivel = combustiveln senao totalcombustivel <- combustiveln - combustivelp fimse retorne totalcombustivel fimfuncao var ret : real Inicio ret := lerCombp escreval("Total de combustivel ",ret) Fimalgoritmo
boa noite pode me ajuda eu fiz esse exercício e queria
saber se está certo de acordo com o enunciado3) Faça um programa que leia uma quantidade de cartões determinada pelo
digitador, contendo a idade e o sexo de uma pessoa (1-Masculino, 2-Feminino).
Calcule e imprima a idade média destas pessoas, quantas pessoas do sexo
feminino estão na faixa dos 18 aos 25 anos e número total de pessoas do sexo
masculino.#include <stdio.h>
#include <string.h>int main()
{int quantidade, idade, sexo;
int numMulher=0, numHomem=0, idadeTotal=0;
int numPessoa=0;
int a;
while(a>0)
{puts("\nQuantidade de cartoes determinada pelo digitador: ");
scanf("%d", &quantidade);
do
{
{puts("\nEntre com a idade: ");
scanf("%d", &idade);
do
{puts("\n\nEntre com o sexo: ");
scanf("%d", &sexo);
}while(sexo!=1 && sexo!=0);idadeTotal+=idade;
numPessoa++;
if(sexo==1 && idade >18 && idade<25)
{numMulher++;
}else
numHomem++;
}printf("\nA idade media e' %d.", idadeTotal/numPessoa);
printf("\nO total de mulheres de 18 aos 25 anos e' %d.", numMulher );
printf("\nO numero de homens e' %d\n\n", numHomem);
return 0;
}- 1
-
boa noite pode me ajuda eu fiz esse exercício e queria
saber se está certo de acordo com o enunciado3) Faça um programa que leia uma quantidade de cartões determinada pelo
digitador, contendo a idade e o sexo de uma pessoa (1-Masculino, 2-Feminino).
Calcule e imprima a idade média destas pessoas, quantas pessoas do sexo
feminino estão na faixa dos 18 aos 25 anos e número total de pessoas do sexo
masculino.#include <stdio.h> #include <string.h> int main() { int quantidade, idade, sexo; int numMulher=0, numHomem=0, idadeTotal=0; int numPessoa=0; int a; while(a>0) { puts("\nQuantidade de cartoes determinada pelo digitador: "); scanf("%d", &quantidade); do { { puts("\nEntre com a idade: "); scanf("%d", &idade); do { puts("\n\nEntre com o sexo: "); scanf("%d", &sexo); }while(sexo!=1 && sexo!=0); idadeTotal+=idade; numPessoa++; if(sexo==1 && idade >18 && idade<25) { numMulher++; } else numHomem++; } printf("\nA idade media e' %d.", idadeTotal/numPessoa); printf("\nO total de mulheres de 18 aos 25 anos e' %d.", numMulher ); printf("\nO numero de homens e' %d\n\n", numHomem); return 0; }
- 1
-
Em 03/12/2021 às 20:15, devair1010 disse:
@oromotoceu Qual IDE / Compilador que você está usando ? , você observou nas msg do compilador , sobre erros no código ? , tem erros , e não nem compila , e você colocou " * " asterisco no scanf , creio que não funcionará , mas QuaL sua ideia ao usar assim esse scanf
scanf("%d", &*Valor); // esse simboLo & siginifica endereco // onde armazenar o numero scanf("%d", &Valor); // Geralmente se usa assim .
e se você usar o visual studio , colocando a stinha do mouse em cima das linhas marcadas em vermelho , você pode ter sugestões de como consertar os erros do código , e esse código seria para fazer o quê ? ,
tem um enunciado ? se tiver pode postar ele aqui ,
- 1
-
8 horas atrás, Midori disse:
@oromotoceu Use o botão Code para postar o seu código, assim fica mais organizado e melhor para ler. Nos dois exercícios você está passando um vetor como argumento para a função, mas o enunciado não diz nada sobre vetor. No primeiro só pede para passar dois números e no segundo são as coordenadas de dois pontos.
Sobre esta parte,
Para retornar a distância seu calculo deve ter as coordenadas dos dois pontos: √[(x1 - x2)² + (y1 - y2)²], p.ex,
float qx = (x1 - x2) * (x1 - x2); float qy = (y1 - y2) * (y1 - y2); return sqrt(qx + qy);
obrigado por ter me ajudado
- 2
-
boa noite pode me ajuda eu fiz esse exercício e queria
saber se está certo de acordo com o enunciado2) Faça um programa que tenha uma função que receba dois números inteiros retorne o menor número.
#include <stdio.h>
#include <iostream>
#include <locale.h>
#define MAX 30using namespace std;
void preencher_vetor (int n [], int tam){;
for (int i=0; i<tam;i++){
cin>> n [i];
}
}void imprimir_vetor (int n [], int tam){;
for (int i=0; i<tam;i++){
cout<<n [i] << "";
}
}
int menor(int n[], int tam){
int aux_menor = n[0];
for (int i=0; i<tam; i++){
if(aux_menor> n[i+1]){
aux_menor = n[i+1];
}
}return aux_menor;
}
int main(){
int n [MAX], tam;
cout<<"Digite o tamanho do vetor" << endl;
cin>>tam;
n[tam];
preencher_vetor(n,tam);
cout<< endl;
imprimir_vetor(n,tam);
cout<<"Menor elemento do vetor" << menor(n,tam) << endl;
return 0;
}
3) Escreva uma função que calcule e retorne a distância entre dois pontos ( x1, y1) e (x2, y2). Todos os números e valores de retorno devem ser do tipo float.
#include <iostream>
#include <math.h>
using namespace std;
struct Ponto{
float x;
float y; };
void LerRetangulo(Ponto ret[], int tam) {
for(int i = 0; i < tam; i++) {
cout << "digite coordenadas x e y do ponto " << i + 1 << endl;
cin >> ret[i].x >> ret[i].y; } }
double CalcDistancia(Ponto ret[],
int tam) {
double distancia = 0;
for(int i = 0; i < tam; i++) {
distancia += sqrt(pow(ret[i].x, 2) + pow(ret[i].y, 2));
}
return distancia; }
void imprimir(double distancia, Ponto ret[], int tam) {
for (int i = 0; i < tam; i++) {
cout << "Ponto " << i << " = " << ret[i].x << ", " << ret[i].y <<endl; }
cout << "Distância = " << distancia << endl; }
int main(int argc, char *argv[]) {
Ponto retangulo[4];
LerRetangulo(retangulo, 4);
imprimir(CalcDistancia(retangulo, 4), retangulo, 4);
} -
Em 01/02/2022 às 20:45, devair1010 disse:
@oromotoceu seria melhor você criar um novo post no tópico de Linguagem c , para obter ajuda , pois esse aqui é de c# , e veja se consegue colocar com esse formato aqui de baixo :
#define _CRT_SECURE_NO_WARNINGS /* 3) Faça um programa que leia as seguintes informações sobre os alunos : • Nome do aluno; • Número de faltas. • Crie uma turma com 5 alunos. • Cada turma terá 20 aulas no semestre. O programa deve imprimir o percentual de faltas para cada aluno e ao final do processamento o total de alunos reprovados por falta(25 % de faltas). */ #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int faltas = 0; char nome[25] = {0}; float perc = 0; int reprovados = 0; for (int i = 0; i < 5; i++) // esse Loop criou uma turma com cinco Alunos { printf("Nome "); // Nome do Aluno scanf("%s", nome); // pega o nome printf("Qtd de faltas "); // msg int r = scanf("%d", &faltas); // pega o numer de faltes e também o retorno de scanf if (r == 0)printf("Erro !\n"); // se scanf não leu nada // pela Regra de Trêss perc = (float)100 * faltas / 20; // 20 eh o total de Aulas , igual a 100 porcyentoo printf("percentual de faltas para o Aluno %s %.2f\n",nome,perc); if (perc >= 25)reprovados++; // total de reprovados } printf("Foram reprovados %d\n", reprovados); // mostra o tatal de Alunos reprovados port Galtas return 0; }
desculpa as vezes eu me confundo com essas opções do site
- 1
-
Em 02/02/2022 às 16:12, Midori disse:
@oromotoceu Para entrar com os elementos é com as funções de input (scanf e fgets).
Se quiser iniciar a estrutura com os elementos para testar os percentuais pode fazer algo assim,
int main(void){ Aluno aluno[5] = { {"Aluno 1", 2}, {"Aluno 2", 3}, {"Aluno 3", 10}, {"Aluno 4", 0}, {"Aluno 5", 5} }; for(int i = 0; i < 5; i += 1){ printf( "%d) %s | Faltas = %d\n", i, aluno[i].nome, aluno[i].faltas ); } return 0; }
obrigado por ter respondido o meu comentário e desculpa por não ter respondido antes estava ocupado com as outras tarefas posso ser seu amigo
-
Em 11/01/2022 às 19:51, mauro_b disse:
@oromotoceu Olá!
Penso que reutilizou uma resposta ao exercício anterior que é semelhante. Sendo a pergunta a mesma: contar e buscar elementos do 'conjunto' chave no 'conjunto' fonte. No caso, o conjunto "key" que antes foi as vogais, agora necessita ser o caractere espaço e tabulação [acima citados]. Talvez dividir e conquistar uma solução que resolve para uma chave e depois reutilizar [em forma de função] no problema de muitas chaves simplifique o desenvolvimento e melhore a aprendizagem.
O procedimento mental [sem o uso da linguagem C] é quase igual à programação. Se parar e pensar no modo que faria para catar e contar formas/números específicos espelhadas na sala terá mesma impressão que usualmente: 1. Escolhe-se UMA das formas específicas [na ordem que estão], 2. Compara-se com as espelhadas, 3. Incrementa-se a quantidade acumulada quando uma das espalhadas é igual à específica, e repete essas etapas até a última das específicas.
Imagino que essa não é resposta que a maioria espera! É com intenção de fazer você começar de novo o código.
[]
obrigado por ter respondido o meu comentário esses dias eu estava de férias e estava revendo alguns exercícios antigos posso ser seu amigo ?
- 1
-
Em 30/12/2021 às 22:57, devair1010 disse:
se o atendente não conhece esse cliente , então como vai inserir os dados dele no sistema para depois iniciar o atendimento ? ,
para que serve uma função que vai apenas fechar um arquivo ? , por que você está usando argv , para abrir o arquivo ? , e por que você disse que o arquivo não poderá mais ser aberto ? , mas para fazer a busca no arquivo vai precisar abrir o arquivo sim , e o que significa essas duas linhas ?
e usando o botão code <> para postar , seu código ficou assim :
/* Denunciar #1 Postado 12 de dezembro boa noite fiz esse exercício e não está certo pode me ajudar por favor 1 - Inserir dados da consulta; a.Iniciar atendimento; 2 - Exibir consultas; 3 - Consultar atendimentos; 4 - Finalizar programa. O programa deve funcionar da seguinte maneira.Quando um cliente chega na veterinária, o atendente antes de iniciar o atendimento insere os dados dele no sistema e logo após inserir os dados é apresentado a opção de iniciar o atendimento.Os dados devem ficar em um arquivo binário e servirá para todos que forem atendidos na veterinária, já o atendimento deve ser um arquivo de texto, gerado com o nome do animal + o nome do dono. Ao finalizar a entrada dos dados de atendimento, que deve ser um arquivo de texto para cada atendimento, o sistema retorna para o menu. O arquivo de texto do atendimento, pode ser feito com a inserção de várias linhas de texto até que o veterinário não queira mais inserir texto finalizando o arquivo, este não poderá ser reaberto. A opção Exibir consultas, apresenta todos as consultas cadastradas. A opção Consultar atendimentos, permite que o usuário digite o nome do animal + dono e seja feita a busca pelo arquivo. */ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #define getch() _getch() #define kbhit() _kbhit() typedef struct { char nome1[100]; char nome2[100]; int data1, data2; float valor; int cont; } clinica; int menu(); int Inserirdadosdaconsulta(clinica*); int escreverdadosarquivo(FILE* , clinica*); int carregararquivo(FILE* , clinica*); int Exibirconsultas(FILE* , clinica*); int Finalizarprograma(FILE*); int Consultaratendimentos(FILE*, clinica*); int Iniciaratendimento(FILE*,clinica*); /* int cont = 0; FILE* arquivo; animal_ + _dono f[1000]; animal_ + _dono F; */ int main() { clinica c[10]; c[0].cont = 0; FILE* arquivo ; arquivo = fopen("dados.x", "r"); int opc = 0; setlocale(LC_ALL, "Portuguese"); do { fflush(stdin); opc = menu(); switch (opc) { case 1: Inserirdadosdaconsulta(c); break; case 2: Iniciaratendimento(arquivo,c); break; case 3: Exibirconsultas(arquivo,c); break; case 4: Consultaratendimentos(arquivo, c); break; case 5: Finalizarprograma(arquivo); break; default: printf("\nOpcao inválida"); } fflush(stdin); printf("\nDeseja continuar: s/n?"); scanf("%c", &opc); } while (opc != 78 || opc != 110); return 0; } int Inserirdadosdaconsulta(clinica f[]) { printf("Para finalizar o cadastro clica ponto:\n"); while (1) { fflush(stdin); printf("Nome1? "); fgets(f[f[0].cont].nome1,99,stdin); if (!strcmp(f[f[0].cont].nome1, ".")) break; printf("Nome2? "); fgets(f[f[0].cont].nome2,99,stdin); if (!strcmp(f[f[0].cont].nome2, ".")) break; printf("Data1? "); scanf("%d", &f[f[0].cont].data1); printf("Data2? "); scanf("%d", &f[f[0].cont].data2); printf("Valor? "); scanf("%f", &f[f[0].cont].valor); f[0].cont++; } return 0; } int Exibirconsultas(clinica f[]) { for (int i = 0; i < f[0].cont; i++) { printf("Data 1 --= %d \n\ \rData 2 --= %d \n\ \rNome 1 --= %s \n\ \rNome 2 --= %s \n\ \rValor ---= %7.2f \n", f[i].data1, f[i].data2, f[i].nome1, f[i].nome2, f[i].valor); } return 0; } int escreverdadosarquivo(FILE* arq, clinica f[]) { if ((arq = fopen("dados.x", "wb")) == NULL) { printf("Arquivo não pode ser criado\n"); exit(1); } for (int i = 0; i < f[0].cont; i++) { fwrite(&f[i], sizeof(clinica ), 1, arq); } printf("Dados digitados com sucesso!\n"); fclose(arq); return 0; } int carregararquivo(FILE* arq,clinica f[]) { if ((arq = fopen("dados.x", "r")) == NULL) { printf("O arquivo não pode ser aberto\n"); exit(1); } // limpeza de todos os itens dentro da memória antes de carregar os dados do arquivo memset(f, 0, sizeof(f)); int cont = 0; while (1) { fread(&f, sizeof(clinica), 1, arq); if (feof(arq)) break; //f[cont] = f; cont++; } printf("Abertura dos dados na memória com sucesso!"); fclose(arq); return 0; } int Iniciaratendimento(FILE* arq , clinica f[]) { while (1) { fread(&f, sizeof(clinica), 1, arq); if (feof(arq)) break; printf("\ \n Data 1 ---= %d \n\ \r Data 2 ---= %d \n\ \r Nome 1 ---= %s \n\ \r Nome 2 ---= %s \n\ \r Valor ----= %7.2f \n\n", f[f[0].cont].data1, f[f[0].cont].data2, f[f[0].cont].nome1, f[f[0].cont].nome2, f[f[0].cont].valor ); } fclose(arq); exit(1); return 0; } int Consultaratendimentos(FILE* arq,clinica f[]) { char nome1[100]; char nome2[100]; clinica aux[100]; int i = 0; fflush(stdin); printf("Digite o atendimento que você quer consultar?"); fgets(nome1,99,stdin); printf("Digite o atendimento que você quer consultar?"); fgets(nome2,99,stdin); //Iniciaratendimento(); while (1) { fread(&f, sizeof(clinica), 1, arq); if (feof(arq)) break; //if (strstr(F.nome1, F.nome2, nome) != NULL) { //aux[i] = f; i++; } } fflush(stdin); for (int x = 0; x < i; x++) { printf("\n Data 1 ---= %d \n\ \r Data 3 ---= %d \n\ \r Nome 1 ---= %s \n\ \r Nome 2 ---= %s \n\ \r Valor ----= %7.2f \n\n", aux[x].data1, aux[x].data2, aux[x].nome1, aux[x].nome2, aux[x].valor); } fclose(arq); return 0; } int Iniciaratendimento(FILE* arq) { if ((arq = fopen("dados.x", "r")) == NULL) { printf("Não foi possível abrir o arquivo!!\n"); exit(1); } return 0; } int Finalizarprograma(FILE* arq) { fclose(arq); return 0; } int menu() { printf("\n 1 - Inserir dados da consulta\n\ \r na.- Iniciar atendimento \n\ \r 2 - Exibir consultas \n\ \r 3 - Consultar atendimentos \n\ \r 4 - Finalizar programa \n\ \r Escolha sua opcao : " ); return getch() - 48; }
mas ainda tem algum erro que não consegui descobrir .
obrigado por ter respondido o meu comentário esse dia foi tenso para mim e uma derrota que até hoje não esqueci
- 1
-
Em 05/12/2021 às 23:27, arfneto disse:
Use o tal botão code como explicado no primeiro post do forum, DESTE forum por exemplo
Veja a diferença
#include <stdio.h> #include <stdlib.h> #define MAXTAM 1000 int Frente, Tras, Lista[MAXTAM]; void Lista_Construtor() { Frente = 0; Tras = -1; } int Lista_Vazia() { if (Tras == -1) return 1; else return 0; } int Lista_Cheia() { if (Tras == MAXTAM - 1) return 1; else return 0; } int Lista_Tamanho() { return Tras + 1; } int Lista_Inserir_Inicio(int Valor) { if (Lista_Cheia()) { return 0; } else { /*se quero inserir na posição 0, vou deslocar todos os elementos para frente*/ for (int i = Tras + 1; i > Frente; i--) { Lista[i] = Lista[i - 1]; } Lista[Frente] = Valor; Tras++; return 1; } } int Lista_Inserir_Fim(int Valor) { if (Lista_Cheia()) { return 0; } else { Tras++; Lista[Tras] = Valor; return 1; } } int Lista_Inserir(int Valor, int Posicao) { if (Lista_Cheia()) { return 0; } else { /* Para verificar se a posição está no meio da lista */ if (Posicao > Frente && Posicao < Tras) { for (int i = Tras + 1; i > Posicao; i--) { Lista[i] = Lista[i - 1]; } Lista[Posicao] = Valor; Tras++; return 1; } else { return 0; } } } int Lista_Remover_Inicio(int* Valor) { if (Lista_Vazia()) { return 0; } else { *Valor = Lista[Frente]; for (int i = Frente; i < Tras; i++) { Lista[i] = Lista[i + 1]; } Tras--; } } int Lista_Remover_Fim(int* Valor) { if (Lista_Vazia()) { return 0; } else { *Valor = Lista[Tras]; Tras--; return 1; } } int Lista_Remover(int* Valor, int Posicao) { if (Lista_Vazia()) { return 0; } else { if (Posicao > Frente && Posicao < Tras) { *Valor = Lista[Posicao]; for (int i = Posicao; i < Tras; i++) { Lista[i] = Lista[i + 1]; } Tras--; return 1; } } } int Lista_Get_toda(int* Valor) { if (Lista_Vazia()) { return 0; } else { *Valor = Lista[Frente]; return 1; } } int Lista_Get_inicio(int* Valor) { if (Lista_Vazia()) { return 0; } else { *Valor = Lista[Frente]; return 1; } } int Lista_Get_Fim(int* Valor) { if (Lista_Vazia()) { return 0; } else { *Valor = Lista[Tras]; return 1; } } int Lista_Busca_Valor(int Valor, int* Posicao) { int i; if (Lista_Vazia()) { return 0; } else { for (i = Frente; i < Tras; i++) { if (Lista[i] == Valor) { break; } } if (i == Tras) { return 0; } else { *Posicao = i; return 1; } } } int Lista_Busca_Posicao(int* Valor, int Posicao) { if (Lista_Vazia()) { return 0; } else { if (Posicao > Frente && Posicao < Tras) { *Valor = Lista[Posicao]; return 1; } else { return 0; } } } int main() { int i, Valor, op = 0, pos; Lista_Construtor(); while (op != 12) { printf("*** Menu de opções ***\n"); printf("1-Inserir início\n"); printf("2-Inserir fim\n"); printf("3-Inserir meio\n"); printf("4-Excluir início\n"); printf("5-Excluir fim\n"); printf("6-Excluir meio\n"); printf("7-Mostrar toda lista\n"); printf("8-Mostrar primeiro item da lista\n"); printf("9-Mostrar último item da lista\n"); printf("10-Mostrar a posição de um item da lista\n"); printf("11-Mostrar o valor de uma posição\n"); printf("12-Sair\n"); printf("Escolha uma opção: "); scanf("%d", &op); switch (op) { case 1: printf("Digite o valor a ser inserido: "); scanf("%d", &Valor); Lista_Inserir_Inicio(Valor); break; case 2: printf("Digite o valor a ser inserido: "); scanf("%d", &Valor); Lista_Inserir_fim(Valor); break; case 3: printf("Digite o valor a ser inserido: "); scanf("%d", &Valor); printf("Digite a posição que deseja inserir: "); scanf("%d", &pos); Lista_ Inserir_meio(int Valor, pos); break; case 4: printf("Digite a remoção do início: "); scanf("%d", &*Valor); Lista_ Excluir_inicio(*Valor); break; case 5: printf("Digite a remoção do fim: "); scanf("%d", &*Valor); Lista_ Excluir_fim(*Valor); break; case 6: printf("Digite a remoção do meio: "); scanf("%d", &Valor); printf("Digite a posição que deseja remover: "); scanf("%d", &*Posicao); Lista_ Excluir_meio(intValor, *pos); break; case 7: printf("Digite ao a mostrar toda lista: "); scanf("%d", &Valor); Lista_ mostrar_toda_lista(Valor); break; case 8: printf("Digite ao a mostrar primeiro item da lista: "); scanf("%d", &*Valor); Lista_ mostrar_primeiro_item_da_lista(*Valor); break; case 9: printf("Digite ao a mostrar último item da lista: "); scanf("%d", &*Valor); Lista_ mostrar_ultimo_item_da_lista(*Valor); break; case 10: printf( "Digite ao a mostrar a posição de um item da " "lista: "); scanf("%d", &Valor); printf( "Digite a posição que deseja mostrar na lista: "); scanf("%d", &*pos); Lista_ mostrar_posicao_de_um_item_da_lista( intValor, *pos); break; case 11: printf("Digite ao a mostrar o valor de uma posição: "); scanf("%d", &*Valor printf("Digite a posição que deseja mostrar no valor: "); scanf("%d", &pos); Lista_ mostrar_posicao_de_um_valor_da_lista(int*Valor, pos); break; case 12: default: printf("Valor Invalido!\n"); system("PAUSE"); } } return 0; }
Seu programa tem muitos problemas ainda
Teste todos os retornos de scanf().
Para testar um programa desses use as próprias funções: num simples loop insira registros até encher a lista, esvazie até ficar vazia, mostre os valores a cada passo, o simples: use um programa para testar o programa
obrigado por ter respondido o meu comentário
agora, oromotoceu disse:obrigado por ter respondido o meu comentário posso ser seu amigo ?
- 1
-
Em 25/01/2022 às 20:39, devair1010 disse:
@Henrique_Rodrigues2007 entendi , que você Quer que essa calculadora além de fazer os cálculos , também fale , com voz humana , o resultado para o usuário , e de preferência no idioma português . ? ?
boa noite fiz esse exercício e não tenho certeza se está de acordo com o enunciado pode me ajudar por favor
3) Faça um programa que leia as seguintes informações sobre os alunos:
• Nome do aluno;
• Número de faltas.
• Crie uma turma com 5 alunos.
• Cada turma terá 20 aulas no semestre.
O programa deve imprimir o percentual de faltas para cada aluno e ao final
do processamento o total de alunos reprovados por falta (25% de faltas).#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(){
float notap; float media;
float notas; int faltas;
float notat; int i;
int cont,contr;
int aprovado,reprovado;
for(i=0; i<2; i++){
printf("Digite Suas Notas \n");
printf("Nota 1:");
scanf("%f", ¬ap);
printf("Digite sua segunda nota \n:");
scanf("%f", ¬as);
printf("Digite sua terceira nota\n :");
scanf("%f", ¬at);
printf("Digite sua quarta nota\n :");
scanf("%f", ¬at);
printf("Digite sua quinta nota\n :");
scanf("%f", ¬at);
printf("Digite sua faltas \n");
scanf("%d",&faltas);
media=((notap + notas + notat+ notat+ notat)/5);
printf("Sua media sera %2.f\n",media);
if(media>=9){
cont++;
printf("Seu conceito esta A. voce foi aprovado\n");
}else if(media>=7.5){
printf("Seu conceito esta B. voce foi reprovado\n");
}else if(media==5.0){
printf("Seu conceito sera C.voce foi reprovado\n");
}else if(media<5.0){
printf("Seu conceito esta D. voce foi aprovado\n");
}else if(media>=8.5){
printf("Seu conceito esta E. voce foi aprovado\n");
}else if(media>=9.5){
contr++;
printf("voce esta Reprovado Va Estudar\n");
}else if(faltas>25){
printf("voce esta Reprovado\n");
}
else if(media< 7.0 && faltas<= 25){
printf("voce esta reprovado\n");
}
}
printf("Foram aprovados %d\n",cont);
printf("Foram reprovados %d\n",contr);
}
- 1
-
1 hora atrás, Midori disse:
@oromotoceu Não está de acordo com o enunciado, aí diz que a turma tem 5 alunos com 20 aulas. Seu código tem que pedir o nome com a quantidade faltas de cada aluno, para isso crie uma estrutura e declare como um vetor de 5 elementos.
typedef struct{ char nome[50]; int faltas; }Aluno;
E mostre cada um no loop, p.ex,
aluno[i].faltas/20.0 * 100;
obrigado por ter me ajudado você sabe um site para me poder recomendar de como criar uma estrutura com os elementos por favor
- 1
-
boa tarde fiz esse exercício e não tenho certeza se está de acordo com o enunciado pode me ajudar por favor
3) Faça um programa que leia as seguintes informações sobre os alunos:
• Nome do aluno;
• Número de faltas.
• Crie uma turma com 5 alunos.
• Cada turma terá 20 aulas no semestre.
O programa deve imprimir o percentual de faltas para cada aluno e ao final
do processamento o total de alunos reprovados por falta (25% de faltas).#include <stdio.h> #include <stdlib.h> #include <math.h> main(){ float notap; float media; float notas; int faltas; float notat; int i; int cont,contr; int aprovado,reprovado; for(i=0; i<2; i++){ printf("Digite Suas Notas \n"); printf("Nota 1:"); scanf("%f", ¬ap); printf("Digite sua segunda nota \n:"); scanf("%f", ¬as); printf("Digite sua terceira nota\n :"); scanf("%f", ¬at); printf("Digite sua quarta nota\n :"); scanf("%f", ¬at); printf("Digite sua quinta nota\n :"); scanf("%f", ¬at); printf("Digite sua faltas \n"); scanf("%d",&faltas); media=((notap + notas + notat+ notat+ notat)/5); printf("Sua media sera %2.f\n",media); if(media>=9){ cont++; printf("Seu conceito esta A. voce foi aprovado\n"); }else if(media>=7.5){ printf("Seu conceito esta B. voce foi reprovado\n"); }else if(media==5.0){ printf("Seu conceito sera C.voce foi reprovado\n"); }else if(media<5.0){ printf("Seu conceito esta D. voce foi aprovado\n"); }else if(media>=8.5){ printf("Seu conceito esta E. voce foi aprovado\n"); }else if(media>=9.5){ contr++; printf("voce esta Reprovado Va Estudar\n"); }else if(faltas>25){ printf("voce esta Reprovado\n"); } else if(media< 7.0 && faltas<= 25){ printf("voce esta reprovado\n"); } } printf("Foram aprovados %d\n",cont); printf("Foram reprovados %d\n",contr); }
- 1
-
Em 11/01/2022 às 09:15, Lucca Rodrigues disse:
Não está. Veja o enunciado:
Ele menciona "espaços em branco", e isso pode ser espaço comum ( ' ' ), tabulação horizontal ( '\t' ), carriage return ( '\r' ), newline ( '\n' ), tabulação vertical ( '\v' ) ou formfeed ( '\f' ).
isspace() da ctype verifica se o caractere passado como argumento é um caractere de espaço em branco, retorna um valor diferente de 0 caso seja e 0 caso não seja. Use ela ou então faça sua própria função, em geral é a mesma ideia que implementou: uma string com todos os caracteres de espaço em branco e um loop pra verificar se algum deles corresponde a um caractere em questão da string que o usuário digitou.
gets() é obsoleta, melhor evitar. Você poderia usar fgets(), scanf() ou alguma outra função, veja:
char str[101]; /* Usando fgets */ if(fgets(str, sizeof(str), stdin) != NULL) { if(str[strlen(str) - 1] == '\n') { // '\n' na penultima posição da string str[strlen(str) - 1] = '\0'; } else { int ch; while((ch = fgetc(stdin)) != '\n' && ch != EOF); } } /* Usando scanf */ int ch; while(scanf("%100[^\n]", str) < 1) { // Lendo o que ha de resto while((ch = fgetc(stdin)) != '\n' && ch != EOF); // Informando o usuario printf("Entrada invalida!\nDigite novamente:\n"); } // Lendo o que ha de resto while((ch = fgetc(stdin)) != '\n' && ch != EOF);
obrigado por ter me ajudado desculpe por não ter visto essa notificação é que eu uso pc e dificilmente eu uso o computador porque não sou o único que usar em casa
Em 11/01/2022 às 19:51, mauro_b disse:@oromotoceu Olá!
Penso que reutilizou uma resposta ao exercício anterior que é semelhante. Sendo a pergunta a mesma: contar e buscar elementos do 'conjunto' chave no 'conjunto' fonte. No caso, o conjunto "key" que antes foi as vogais, agora necessita ser o caractere espaço e tabulação [acima citados]. Talvez dividir e conquistar uma solução que resolve para uma chave e depois reutilizar [em forma de função] no problema de muitas chaves simplifique o desenvolvimento e melhore a aprendizagem.
O procedimento mental [sem o uso da linguagem C] é quase igual à programação. Se parar e pensar no modo que faria para catar e contar formas/números específicos espelhadas na sala terá mesma impressão que usualmente: 1. Escolhe-se UMA das formas específicas [na ordem que estão], 2. Compara-se com as espelhadas, 3. Incrementa-se a quantidade acumulada quando uma das espalhadas é igual à específica, e repete essas etapas até a última das específicas.
Imagino que essa não é resposta que a maioria espera! É com intenção de fazer você começar de novo o código.
[]
obrigado por ter me ajudado desculpe por não ter visto essa notificação é que eu uso pc e dificilmente eu uso o computador porque não sou o único que usar em casa
Em 11/01/2022 às 09:15, Lucca Rodrigues disse:Não está. Veja o enunciado:
Ele menciona "espaços em branco", e isso pode ser espaço comum ( ' ' ), tabulação horizontal ( '\t' ), carriage return ( '\r' ), newline ( '\n' ), tabulação vertical ( '\v' ) ou formfeed ( '\f' ).
isspace() da ctype verifica se o caractere passado como argumento é um caractere de espaço em branco, retorna um valor diferente de 0 caso seja e 0 caso não seja. Use ela ou então faça sua própria função, em geral é a mesma ideia que implementou: uma string com todos os caracteres de espaço em branco e um loop pra verificar se algum deles corresponde a um caractere em questão da string que o usuário digitou.
gets() é obsoleta, melhor evitar. Você poderia usar fgets(), scanf() ou alguma outra função, veja:
char str[101]; /* Usando fgets */ if(fgets(str, sizeof(str), stdin) != NULL) { if(str[strlen(str) - 1] == '\n') { // '\n' na penultima posição da string str[strlen(str) - 1] = '\0'; } else { int ch; while((ch = fgetc(stdin)) != '\n' && ch != EOF); } } /* Usando scanf */ int ch; while(scanf("%100[^\n]", str) < 1) { // Lendo o que ha de resto while((ch = fgetc(stdin)) != '\n' && ch != EOF); // Informando o usuario printf("Entrada invalida!\nDigite novamente:\n"); } // Lendo o que ha de resto while((ch = fgetc(stdin)) != '\n' && ch != EOF);
boa tarde fiz esse exercício e não tenho certeza se está de acordo com o enunciado pode me ajudar por favor
3) Faça um programa que leia as seguintes informações sobre os alunos:
• Nome do aluno;
• Número de faltas.
• Crie uma turma com 5 alunos.
• Cada turma terá 20 aulas no semestre.
O programa deve imprimir o percentual de faltas para cada aluno e ao final
do processamento o total de alunos reprovados por falta (25% de faltas).#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(){
float notap; float media;
float notas; int faltas;
float notat; int i;
int cont,contr;
int aprovado,reprovado;
for(i=0; i<2; i++){
printf("Digite Suas Notas \n");
printf("Nota 1:");
scanf("%f", ¬ap);
printf("Digite sua segunda nota \n:");
scanf("%f", ¬as);
printf("Digite sua terceira nota\n :");
scanf("%f", ¬at);
printf("Digite sua quarta nota\n :");
scanf("%f", ¬at);
printf("Digite sua quinta nota\n :");
scanf("%f", ¬at);
printf("Digite sua faltas \n");
scanf("%d",&faltas);
media=((notap + notas + notat+ notat+ notat)/5);
printf("Sua media sera %2.f\n",media);
if(media>=9){
cont++;
printf("Seu conceito esta A. voce foi aprovado\n");
}else if(media>=7.5){
printf("Seu conceito esta B. voce foi reprovado\n");
}else if(media==5.0){
printf("Seu conceito sera C.voce foi reprovado\n");
}else if(media<5.0){
printf("Seu conceito esta D. voce foi aprovado\n");
}else if(media>=8.5){
printf("Seu conceito esta E. voce foi aprovado\n");
}else if(media>=9.5){
contr++;
printf("voce esta Reprovado Va Estudar\n");
}else if(faltas>25){
printf("voce esta Reprovado\n");
}
else if(media< 7.0 && faltas<= 25){
printf("voce esta reprovado\n");
}
}
printf("Foram aprovados %d\n",cont);
printf("Foram reprovados %d\n",contr);
}
- 1
- 1
-
3- Ler uma frase e contar quantos caracteres são espaços em branco
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <ctype.h>
int main(void){//captura do texto que será digitado pelo usuário
printf("Digite sua frase:");
gets(texto);//contagem de vogais da entrada feita pelo usuário
- 1
-
boa noite fiz esse exercício e não está certo pode me ajudar por favor
1- Inserir dados da consulta;
a. Iniciar atendimento;
2- Exibir consultas;
3- Consultar atendimentos;
4- Finalizar programa.
O programa deve funcionar da seguinte maneira. Quando um cliente chega na veterinária, o atendente antes de iniciar o atendimento insere os dados dele no sistema e logo após inserir os dados é apresentado a opção de iniciar o atendimento. Os dados devem ficar em um arquivo binário e servirá para todos que forem atendidos na veterinária, já o atendimento deve ser um arquivo de texto, gerado com o nome do animal + o nome do dono.
Ao finalizar a entrada dos dados de atendimento, que deve ser um arquivo de texto para cada atendimento, o sistema retorna para o menu.
O arquivo de texto do atendimento, pode ser feito com a inserção de várias linhas de texto até que o veterinário não queira mais inserir texto finalizando o arquivo, este não poderá ser reaberto.
A opção Exibir consultas, apresenta todos as consultas cadastradas.
A opção Consultar atendimentos, permite que o usuário digite o nome do animal+dono e seja feita a busca pelo arquivo.#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>typedef struct {
char nome1[100];
char nome2[100];
int data1, data2;
float valor;
} clinica;
void menu();
void Inserirdadosdaconsulta();
void escreverdadosarquivo();
void carregararquivo();
void Exibirconsultas();
void Finalizarprograma();
void Consultaratendimentos();
void Iniciaratendimento();
int cont=0;
FILE *arquivo;
animal_+_dono f[1000];
animal_+_dono F;int main ()
{
char opc;
setlocale(LC_ALL,"Portuguese");
do
{
fflush(stdin);
menu();
fflush(stdin);
printf("\nDeseja continuar: s/n?");
scanf("%c",&opc);
}
while (opc != 'n');return 0;
}void Inserirdadosdaconsulta() {
printf("Para finalizar o cadastro clica ponto:\n");while (1)
{
fflush(stdin);
printf("\nNome1? ");
gets(f[cont].nome1);
if ( !strcmp(f[cont].nome1,".") ) break;
printf("\nNome2? ");
gets(f[cont].nome2);
if ( !strcmp(f[cont].nome2,".") ) break;
printf("\nData1? ");
scanf("%i",&f[cont].data1);
printf("\nData2? ");
scanf("%i",&f[cont].data2);
printf("\nValor? ");
scanf("%f",&f[cont].valor);
cont++;
}
Finalizarprograma();
}
void Exibirconsultas() {
for (int i = 0; i < cont; i++) {
printf("%i\t%s\t%7.2f\n", f[i].data1, f[i].data2, f[i].nome1, f[i].nome2, f[i].valor);
}
Finalizarprograma();
}
void escreverdadosarquivo(){if ( (arqv = fopen("dados.x","wb"))== NULL )
{
printf("Arquivo não pode ser criado\n");
exit(1);
}
for (int i = 0; i < cont; i++) {
fwrite(&f[i],sizeof(animal+dono),1,arqv);
}printf("Dados digitados com sucesso!\n");
fclose(arqv);
}
Finalizarprograma();
}
void carregararquivo(){if ( (arqv = fopen("dados.x","r"))== NULL )
{
printf("O arquivo não pode ser aberto\n");
exit(1);
}// limpeza de todos os itens dentro da memória antes de carregar os dados do arquivo
memset(f, 0, sizeof(f));
cont = 0;while (1) {
fread(&F,sizeof(animal+dono),1,arqv);
if ( feof(arqv) ) break;
f[cont] = F;
cont++;
}
printf("Abertura dos dados na memória com sucesso!");
fclose(arqv);
}
Iniciaratendimento();
while (1) {
fread(&F,sizeof(animal+dono),1,arqv);
if ( feof(arqv) ) break;
}
}
fclose(arqv);
printf("\n %i\t %s\t %7.2f", f.data1, f.data2, f.nome1, f.nome2, f.valor);
}
printf("Arquivo não pode ser aberto\n");
exit(1);
}
}
void Consultaratendimentos(){
char nome1[100];
char nome2[100];
animal+dono aux[100];
int i = 0;fflush(stdin);
printf("Digite o atendimento que você quer consultar?");
gets(nome1);
printf("Digite o atendimento que você quer consultar?");
gets(nome2);
Iniciaratendimento();while (1) {
fread(&F,sizeof(animal+dono),1,arqv);
if ( feof(arqv) ) break;if (strstr(F.nome1, F.nome2, nome) != NULL) {
aux[i] = F;
i++;
}}
fflush(stdin);
for (int x = 0; x < i; x++){
printf("\n %i\t %s\t %7.2f", aux[x].data1, aux[x].data2, aux[x].nome1, aux[x].nome2, aux[x].valor);
}
fclose(arqv);
}
void Iniciaratendimento() {
if ( (arqv = fopen("dados.x","r")) == NULL ) {
printf("Não foi possível abrir o arquivo!!\n");
exit(1);
}
}
void Finalizarprograma()
{
fclose(arqv);
}
void menu() {
int opc;
printf("\n1- Inserir dados da consulta");
printf("\na.- Iniciar atendimento");
printf("\n2- Exibir consultas");
printf("\n3- Consultar atendimentos");
printf("\n4- Finalizar programa");
printf("\nEscolha sua opcao: ");
scanf("%d",&opc);
switch (opc)
{
case 1:
Inserirdados();
break;
case 2:
Iniciaratendimento();
break;
case 3:
Exibirconsultas();
break;
case 4:
Consultaratendimentos();
break;
case 5:
Finalizarprograma();
break;
default:
printf("\nOpcao inválida");
}
}- 1
-
Boa tarde fiz esse exercício e não tenho certeza se está certo
Implemente uma lista estática, com todas as funções e monte um menu de opções.
#include <stdio.h>
#include <stdlib.h>
#define MAXTAM 1000
int Frente, Tras, Lista[MAXTAM];
void Lista_Construtor(){
Frente=0;
Tras=-1;
}
int Lista_Vazia(){
if(Tras==-1)
return 1;
else
return 0;
}
int Lista_Cheia(){
if(Tras==MAXTAM-1)
return 1;
else
return 0;
}
int Lista_Tamanho(){
return Tras+1;
}
int Lista_Inserir_Inicio(int Valor){
if(Lista_Cheia()){
return 0;
}else{
/*se quero inserir na posição 0,
vou deslocar todos os elementos para frente*/
for(int i=Tras+1;i>Frente;i--){
Lista[i]=Lista[i-1];
}
Lista[Frente]=Valor;
Tras++;
return 1;
}
}
int Lista_Inserir_Fim(int Valor){
if(Lista_Cheia()){
return 0;
}else{
Tras++;
Lista[Tras]=Valor;
return 1;
}
}
int Lista_Inserir(int Valor, int Posicao){
if(Lista_Cheia()){
return 0;
}else{
/* Para verificar se a posição
está no meio da lista */
if(Posicao>Frente && Posicao<Tras){
for(int i=Tras+1;i>Posicao;i--){
Lista[i]=Lista[i-1];
}
Lista[Posicao]=Valor;
Tras++;
return 1;
}else{
return 0;
}
}
}
int Lista_Remover_Inicio(int *Valor){
if(Lista_Vazia()){
return 0;
}else{
*Valor =Lista[Frente];
for(int i=Frente;i<Tras;i++){
Lista[i]=Lista[i+1];
}
Tras--;
}
}
int Lista_Remover_Fim(int *Valor){
if(Lista_Vazia()){
return 0;
}else{
*Valor=Lista[Tras];
Tras--;
return 1;
}
}
int Lista_Remover(int *Valor, int Posicao){
if(Lista_Vazia()){
return 0;
}else{
if(Posicao>Frente && Posicao<Tras){
*Valor=Lista[Posicao];
for(int i=Posicao;i<Tras;i++){
Lista[i]=Lista[i+1];
}
Tras--;
return 1;
}
}
}
int Lista_Get_toda(int *Valor){
if(Lista_Vazia()){
return 0;
}else{
*Valor=Lista[Frente];
return 1;
}
}
int Lista_Get_inicio(int *Valor){
if(Lista_Vazia()){
return 0;
}else{
*Valor=Lista[Frente];
return 1;
}
}
int Lista_Get_Fim(int *Valor){
if(Lista_Vazia()){
return 0;
}else{
*Valor=Lista[Tras];
return 1;
}
}
int Lista_Busca_Valor(int Valor, int *Posicao){
int i;
if(Lista_Vazia()){
return 0;
}else{
for(i=Frente;i<Tras;i++){
if(Lista[i]==Valor){
break;
}
}
if(i==Tras){
return 0;
}else{
*Posicao=i;
return 1;
}
}
}
int Lista_Busca_Posicao(int *Valor, int Posicao){
if(Lista_Vazia()){
return 0;
}else{
if(Posicao>Frente && Posicao<Tras){
*Valor=Lista[Posicao];
return 1;
}else{
return 0;
}
}
}
int main(){
int i,Valor,op=0,pos;
Lista_Construtor();
while(op!=12){
printf("*** Menu de opções ***\n");
printf("1-Inserir início\n");
printf("2-Inserir fim\n");
printf("3-Inserir meio\n");
printf("4-Excluir início\n");
printf("5-Excluir fim\n");
printf("6-Excluir meio\n");
printf("7-Mostrar toda lista\n");
printf("8-Mostrar primeiro item da lista\n");
printf("9-Mostrar último item da lista\n");
printf("10-Mostrar a posição de um item da lista\n");
printf("11-Mostrar o valor de uma posição\n");
printf("12-Sair\n");
printf("Escolha uma opção: ");
scanf("%d", &op);
switch(op){
case 1:
printf("Digite o valor a ser inserido: ");
scanf("%d", &Valor);
Lista_Inserir_Inicio(Valor);
break;
case 2:
printf("Digite o valor a ser inserido: ");
scanf("%d", &Valor);
Lista_Inserir_fim(Valor);
break;
case 3:
printf("Digite o valor a ser inserido: ");
scanf("%d", &Valor);
printf("Digite a posição que deseja inserir: ");
scanf("%d", &pos);
Lista_ Inserir_meio(int Valor, pos);
break;
case 4:
printf("Digite a remoção do início: ");
scanf("%d", &*Valor);
Lista_ Excluir_inicio(*Valor);
break;
case 5:
printf("Digite a remoção do fim: ");
scanf("%d", &*Valor);
Lista_ Excluir_fim(*Valor);
break;
case 6:
printf("Digite a remoção do meio: ");
scanf("%d", &Valor);
printf("Digite a posição que deseja remover: ");
scanf("%d", &*Posicao);
Lista_ Excluir_meio(intValor, * pos);
break;
case 7:
printf("Digite ao a mostrar toda lista: ");
scanf("%d", &Valor);
Lista_ mostrar_toda_lista(Valor);
break;
case 8:
printf("Digite ao a mostrar primeiro item da lista: ");
scanf("%d", &*Valor);
Lista_ mostrar_primeiro_item_da_lista(*Valor);
break;
case 9:
printf("Digite ao a mostrar último item da lista: ");
scanf("%d", &*Valor);
Lista_ mostrar_ultimo_item_da_lista(*Valor);
break;
case 10:
printf("Digite ao a mostrar a posição de um item da lista: ");
scanf("%d", &Valor);
printf("Digite a posição que deseja mostrar na lista: ");
scanf("%d", &* pos);
Lista_ mostrar_posicao_de_um_item_da_lista(intValor, *pos);
break;
case 11:
printf("Digite ao a mostrar o valor de uma posição: ");
scanf("%d", &*Valor
printf("Digite a posição que deseja mostrar no valor: ");
scanf("%d", &pos);
Lista_ mostrar_posicao_de_um_valor_da_lista(int*Valor, pos);
break;
case 12:
default:
printf("Valor Invalido!\n");
system("PAUSE");}
}
return 0;
}- 1
- 1
-
#include <stdio.h>
#include <stdlib.h>
#define MAXTAM 1000
int Frente, Tras, Lista[MAXTAM];
void Lista_Construtor(){
Frente=0;
Tras=-1;
}
int Lista_Vazia(){
if(Tras==-1)
return 1;
else
return 0;
}
int Lista_Cheia(){
if(Tras==MAXTAM-1)
return 1;
else
return 0;
}
int Lista_Tamanho(){
return Tras+1;
}
int Lista_Inserir_Inicio(int Valor){
if(Lista_Cheia()){
return 0;
}else{
/*se quero inserir na posição 0,
vou deslocar todos os elementos para frente*/
for(int i=Tras+1;i>Frente;i--){
Lista[i]=Lista[i-1];
}
Lista[Frente]=Valor;
Tras++;
return 1;
}
}
int Lista_Inserir_Fim(int Valor){
if(Lista_Cheia()){
return 0;
}else{
Tras++;
Lista[Tras]=Valor;
return 1;
}
}
int Lista_Inserir(int Valor, int Posicao){
if(Lista_Cheia()){
return 0;
}else{
/* Para verificar se a posição
está no meio da lista */
if(Posicao>Frente && Posicao<Tras){
for(int i=Tras+1;i>Posicao;i--){
Lista[i]=Lista[i-1];
}
Lista[Posicao]=Valor;
Tras++;
return 1;
}else{
return 0;
}
}
}
int Lista_Remover_Inicio(int *Valor){
if(Lista_Vazia()){
return 0;
}else{
*Valor =Lista[Frente];
for(int i=Frente;i<Tras;i++){
Lista[i]=Lista[i+1];
}
Tras--;
}
}
int Lista_Remover_Fim(int *Valor){
if(Lista_Vazia()){
return 0;
}else{
*Valor=Lista[Tras];
Tras--;
return 1;
}
}
int Lista_Remover(int *Valor, int Posicao){
if(Lista_Vazia()){
return 0;
}else{
if(Posicao>Frente && Posicao<Tras){
*Valor=Lista[Posicao];
for(int i=Posicao;i<Tras;i++){
Lista[i]=Lista[i+1];
}
Tras--;
return 1;
}
}
}
int Lista_Get_toda(int *Valor){
if(Lista_Vazia()){
return 0;
}else{
*Valor=Lista[Frente];
return 1;
}
}
int Lista_Get_inicio(int *Valor){
if(Lista_Vazia()){
return 0;
}else{
*Valor=Lista[Frente];
return 1;
}
}
int Lista_Get_Fim(int *Valor){
if(Lista_Vazia()){
return 0;
}else{
*Valor=Lista[Tras];
return 1;
}
}
int Lista_Busca_Valor(int Valor, int *Posicao){
int i;
if(Lista_Vazia()){
return 0;
}else{
for(i=Frente;i<Tras;i++){
if(Lista[i]==Valor){
break;
}
}
if(i==Tras){
return 0;
}else{
*Posicao=i;
return 1;
}
}
}
int Lista_Busca_Posicao(int *Valor, int Posicao){
if(Lista_Vazia()){
return 0;
}else{
if(Posicao>Frente && Posicao<Tras){
*Valor=Lista[Posicao];
return 1;
}else{
return 0;
}
}
}
int main(){
int i,Valor,op=0,pos;
Lista_Construtor();
while(op!=12){
printf("*** Menu de opções ***\n");
printf("1-Inserir início\n");
printf("2-Inserir fim\n");
printf("3-Inserir meio\n");
printf("4-Excluir início\n");
printf("5-Excluir fim\n");
printf("6-Excluir meio\n");
printf("7-Mostrar toda lista\n");
printf("8-Mostrar primeiro item da lista\n");
printf("9-Mostrar último item da lista\n");
printf("10-Mostrar a posição de um item da lista\n");
printf("11-Mostrar o valor de uma posição\n");
printf("12-Sair\n");
printf("Escolha uma opção: ");
scanf("%d", &op);
switch(op){
case 1:
printf("Digite o valor a ser inserido: ");
scanf("%d", &Valor);
Lista_Inserir_Inicio(Valor);
break;
case 2:
printf("Digite o valor a ser inserido: ");
scanf("%d", &Valor);
Lista_Inserir_fim(Valor);
break;
case 3:
printf("Digite o valor a ser inserido: ");
scanf("%d", &Valor);
printf("Digite a posição que deseja inserir: ");
scanf("%d", &pos);
Lista_ Inserir_meio(int Valor, pos);
break;
case 4:
printf("Digite a remoção do início: ");
scanf("%d", &*Valor);
Lista_ Excluir_inicio(*Valor);
break;
case 5:
printf("Digite a remoção do fim: ");
scanf("%d", &*Valor);
Lista_ Excluir_fim(*Valor);
break;
case 6:
printf("Digite a remoção do meio: ");
scanf("%d", &Valor);
printf("Digite a posição que deseja remover: ");
scanf("%d", &*Posicao);
Lista_ Excluir_meio(intValor, * pos);
break;
case 7:
printf("Digite ao a mostrar toda lista: ");
scanf("%d", &Valor);
Lista_ mostrar_toda_lista(Valor);
break;
case 8:
printf("Digite ao a mostrar primeiro item da lista: ");
scanf("%d", &*Valor);
Lista_ mostrar_primeiro_item_da_lista(*Valor);
break;
case 9:
printf("Digite ao a mostrar último item da lista: ");
scanf("%d", &*Valor);
Lista_ mostrar_ultimo_item_da_lista(*Valor);
break;
case 10:
printf("Digite ao a mostrar a posição de um item da lista: ");
scanf("%d", &Valor);
printf("Digite a posição que deseja mostrar na lista: ");
scanf("%d", &* pos);
Lista_ mostrar_posicao_de_um_item_da_lista(intValor, *pos);
break;
case 11:
printf("Digite ao a mostrar o valor de uma posição: ");
scanf("%d", &*Valor
printf("Digite a posição que deseja mostrar no valor: ");
scanf("%d", &pos);
Lista_ mostrar_posicao_de_um_valor_da_lista(int*Valor, pos);
break;
case 12:
default:
printf("Valor Invalido!\n");
system("PAUSE");}
}
return 0;
} -
Em 01/12/2016 às 04:41, vangodp disse:
É muito difícil explicar todos os conceitos que você precisa por um fórum. Então preparei um exemplo "simples" do que você teria que fazer.
Imagine que você tem um arquivo como esse: prova.txtO arquivo tem 3 linhas dessa forma:
linha1
linha2
linha3
Imagine que quero borrar linha2 deixando ele dessa forma:
linha1
linha3
O código seria esse:
#include<stdio.h> #include <locale.h> #include <string.h> int main(void){ setlocale(LC_ALL, "portuguese-brazilian"); //abrimos o arquivo e comprovamos se foi aberto FILE *file = fopen("prova.txt", "r+"); if( !file ){ perror("Erro: "); getchar(); return 1; } //variaveis que vamos usar char buffer[1204]; //Buffer que vai guardar uma linha do arquivo por vez char pesquisa[100] = "linha2"; //O que pretendo buscar no arquivo long int inicioLinha=0; //variavel que vai indicar onde começa a linha antes de ler inicioLinha = ftell( file ); //preste atenção. Antes de ler uma linha devemos anotar o primeiro caractere da linha, isso é o que faz essa linha, ftell guarda em inicioLinha quantos bytes tem desde o inicio do arquivo até o inicio da linha. while ( fscanf(file, "%s%*c", buffer) != EOF ){ // Como o programa começa na linha zero inicioLinha começa sendo 0, agora fscanf le a linha e o que foi lido vai parar no buffer. O fscanf para na seguinte linha antes de uma nova leitura, porém devemos comprovar primeiro se o que tem na linha é o que andamos buscando. //Comparamos o que foi lido com o objetovo da pesquisa if ( strcmp( buffer, pesquisa ) == 0 ){ // Se entramos aqui é por que buffer é igual a pesquisa printf ("Encontrado!\n"); //Agora nesse ponto devemos fazer o que queremos... borrar o conteudo. printf("No buffer tem: %d letras.\n", strlen(buffer)); //Para borrar o conteudo devemos primeiro saber quantas letras tem int TAM = strlen(buffer); //guardamos o tamanho em uma variavel. //Agora preste atenção novamente devemos voltar ao inicio da linha para poder borrar TAM letras. Para isso usamos fseek fseek(file/*no arquivo...*/, inicioLinha/*queremos ir ao inicio da linha...*/, SEEK_SET/*e queremos fazer desde o inicio para o fim*/); // fseek bota o ponteiro X bytes desde o inicio do arquivo e para direitinho ao inicio da linha. //Agora escrevemos TAM bytes com espaços(borrado! A linha fica em branco) int i; for (i=0; i<TAM ;i++ ) { putc((int)' ', file); } //TADAH!!! //usamos break para sair break; } inicioLinha = ftell( file ); //Se não encontrou necessotamos continuar lendo linhas... então anotamos outravez o inicio da seguinte linha antes de começar tudo de novo. } fclose(file); }
Tentei comentar o máximo não gosto de carregar tanto de comentário, porém não sei seu nível, se tiver duvidas pergunte.
Você deve praticar mais com arquivos, só assim você pegará a pratica, não espere seu professor pedir trabalhos, vai na luta vei.
Prove fazer vários tipos de CRUD... aluguel de filmes, gestão de bibliotecas, contas de bancos, etc.
Basicamente é começar a ler o arquivo pelo inicio... linha zero.O que fazemos todo o tempo é:
-Anotar onde começa a linha.
-Ler a a linha. O cursor vai se deter na seguinte linha.
-A linha que lemos comparamos com o que estamos buscando
-Se encontramos...- voltar ao principio da linha
- obter o tamanho dos dados a sobrescrever
- sobrescrever
- sair do laço com um break(pergunte se seu professor permite usar essa opção, tem professores muito chatos >_<)
-Se não repetimos tudo novamente até encontrar o que buscamos ou até atingir o fim do arquivo, nesse caso quer dizer que não encontramos.
bom dia pode me ajudar nessa questão por favor
Baseado no contexto abaixo gerar um programa utilizando arquivos binários,
funções e matrizes, faça o que se pede.O programa deverá funcionar todo na memória RAM do computador da seguinte maneira.
Sempre que iniciar o programa, ele pega os dados gravados no arquivo e traz para
um vetor de registros na memória e antes de finalizar pega todos os dados e
regrava no arquivo, mantendo sempre os dados atualizados conforme o que está na
memória.
O programa deverá trabalhar dados de um veículo, onde será armazenado, Nome do
proprietário, placa do carro, modelo do carro e preço do carro.
O programa deve ter as seguintes opções:
1- Inserir dados (todos os dados sugeridos no enunciado acima).
2- Excluir um Carro específico com a busca pela placa.
3- Editar dados de um Carro com a busca pela placa.
4- Consultar carro por Placa.
5- Exibir todos os dados cadastrados.
6- Finalizar programa.
A opção exibir todos os dados, apresenta tudo que já foi cadastrado e está na
memória.- 1
-
Em 25/09/2017 às 11:49, Xaws disse:
@Alisson Pavinhaski Por se tratar de um exercício ninguém pode dar código pronto ou modelo a não ser que você poste sua tentativa.
Sistema de registro e login você pode fazer usando struct.
Locação relatorio e etc... Você vai ter que criar um código que crie arquivos e salve nesses arquivo depois você só tem que fazer a leitura
Na questão do sistema de login com struct isso te ajuda ↓
https://www.clubedohardware.com.br/forums/topic/1249435-comparar-login-e-senha-a-partir-de-arquivo-txt/?page=2
Faz uma tentativa e posta seu código que a galera te ajudabom dia pode me ajudar
- 1
-
10 horas atrás, andre_naski disse:
@oromotoceu mande aqui o que já fez e qual é sua dúvida pra tentarmos ajudar.
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>struct procedimento{
int idade, duracao;
float V;
char nome[50];
};int main(){
setlocale(LC_ALL, "Portuguese");
int nprocedimento;
struct procedimento *vet;printf("Digite quantos procedimentos tem?: ");
scanf("%i", &nprocedimento);vet=(struct procedimento *)malloc(nprocedimento * sizeof(struct procedimento));
if(vet==NULL){
printf("Não foi possível alocar espaço de memória!");
exit(1);
}// Entrada de dados dos procedimentos
printf("\n Digitação dos dados do procedimento \n");
for(int i=0;i<nprocedimento; i++){
printf("Nome do %i° procedimento: ", i+1);
scanf(" %s", vet[i].nome);
printf("Digite o valor do %i° procedimento: ", i+1);
scanf("%f", &vet[i].V);
printf("Digite a duração (em dias) do %i° procedimento: ", i+1);
scanf(" %i", &vet[i].duracao);
}free(vet);
}
-
não estou conseguindo fazer esse exercício
Faça um programa em C que leia inicialmente a quantidade de procedimentos que foram realizados. Depois apresente como resultado:
a) As informações de cada procedimento (mostrar normalmente);
b) A quantidade total de dias que ele ficou internado; e
c) O valor total que ele deverá pagar no momento de sua alta.
•OBS: Utilize duas funções para calcular os totais de a e b.
-
@devair1010 obrigado por ter me ajudado posso ter seu contato para comunicar com você ?
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
Faça um programa que calcule e imprima o CR do período para os alunos de Sistema
em C/C#/C++
Postado
boa noite pode me ajuda eu fiz esse exercício e queria
saber se está certo de acordo com o enunciado
4) Faça um programa que calcule e imprima o CR do período para os alunos de Sistemas de
Informação. Para cada aluno o programa devera ler:
a) Matrícula;
b) Quantidade de disciplinas cursadas;
c) Soma das médias finais das disciplinas.
Além do CR de cada aluno, o programa deverá imprimir o maior CR dos alunos que cursaram 5
disciplinas ou mais.
#include <stdio.h>
#include <stdlib.h>
void main()
{
int matricula, disciplinas, i;
float cr, maior=0, nota, notas;
do {
notas = 0;
printf("\nDigite a matricula: ");
scanf("%d", &matricula);
if (matricula < 1 || matricula > 5000)
break;
printf("\nDigite a quantidade de disciplinas cursadas: ");
scanf("%d", &disciplinas);
i = 1;
while(i <= disciplinas) {
printf("\nDigite a nota da disciplina %d: ", i);
scanf("%f", ¬a);
notas += nota;
i++;
}
cr = notas / disciplinas;
printf("\nMatricula: %d", matricula);
printf("\nNumero de disciplinas: %d", disciplinas);
printf("\nCR: %f", cr);
if (disciplinas > 4 && cr > maior) {
maior = cr;
}
} while(matricula > 0 && matricula <= 5000);
printf("\nMaior CR dos alunos: %f", maior);
}