Ir ao conteúdo
  • Cadastre-se

jpaulofsa

Membros Plenos
  • Total de itens

    40
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. jpaulofsa

    C abortar loop em C

    @devair1010 Muito obrigado, mas agora tem coisas avançadas que não vi ainda.
  2. jpaulofsa

    C abortar loop em C

    @devair1010 Obrigado! funcionou como precisava.
  3. jpaulofsa

    C abortar loop em C

    #include <stdio.h> int main() { int num[10]; //Declara um vetor de inteiros de 10 posições int count = 0; int totalnums; do { printf ("\nEntre com um numero (-999 p/ terminar): "); scanf("%d", &num[count]); count++; } while (num[count-1]!=-999 || (num[count] < 11)) ; totalnums=count-1; printf("\n\n\n\t Os numeros que voce digitou foram: \n\n"); for (count=0; count<totalnums; count++) printf(" %d", num[count]); return(0); } Boa noite, pessoal. Preciso fazer com que o loop seja interrompido caso o usuário entre com 10 números ou caso o Flag (-999) seja digitado, pensei em inserir a condição || (num[count] < 11) dentro do while, mas não deu certo. Alguém poderia ajudar? desde já agradeço.
  4. @AnsiC Ótimo. muito obrigado. #include <stdio.h> #include <stdlib.h> int main(void) { int index = 0, contador; char letras[5] = "Joao"; /* Através do comando if e do operador % testar se o contador é divisível por 5 para fazer com que cada letra seja escrita 5 vezes seguidas antes de atualizar o index */ for (contador=0; contador<1000; contador++) { { printf("\n %c", letras[index]); if (index==3) { index=0; } else { if (contador % 5 == 0) { ++index; } } } } printf("\n\n"); system("pause"); return 0; } Mas eu precisaria que estas letras se repetissem obedecendo ao contador < 1000...teria como ou só da forma que você fez mesmo? do jeito que fiz aí tem letras que repetem 1 vez, outras às 5 vezes...
  5. #include <stdio.h> int main() { int index = 0, contador; char letras[5] = "Joao"; /* Através do comando if e do operador % testar se o contador é divisível por 5 para fazer com que cada letra seja escrita 5 vezes seguidas antes de atualizar o index */ for (contador=0; contador<1000; contador++) { { //if (letras[index] % 5 == 0) printf("\n%c", letras[index]); if (index==3) { index=0; } else { if (letras[index] % 5 == 0) { ++index; } } } } } Bom dia, pessoal. Preciso da ajuda de vocês. Gostaria, Através do comando if e do operador %, de testar se o contador é divisível por 5 para fazer com que cada letra seja escrita 5 vezes seguidas antes de atualizar o index. Alguém conseguiria me auxiliar, tentei algumas formas inclusive da forma acima, mas não está dando certo.
  6. @isrnick muito obrigado. Resolvido! não sabia desse detalhe.
  7. #include <stdio.h> int main() { int cont; for (cont = 0; cont < 256; cont++) { printf("%d = %c \n", cont, cont); } } Fala turma. Preciso de um código que pegue os números de 0 a 255 e imprima o código ASCII correspondente. Pensei da forma acima, mas o problema é que ele esta começando a imprimir do 108 até o 255, não sei o porque tá ignorando do 0 ao 107. Alguém poderia ajudar?
  8. #include <stdio.h> #include <stdlib.h> struct tipo_no { int dado; struct tipo_no * proximo; }; typedef struct tipo_no No; struct tipo_lista{ No *primeiro; No *ultimo; }; typedef struct tipo_lista Lista; void criarLista(Lista* lista){ lista->primeiro = NULL; lista->ultimo=NULL; } int listaVazia(Lista* lista){ if ((lista->primeiro == NULL) || (lista->ultimo==NULL)) return 1; else return 0; } void inserirFinal(Lista* lista,int valor){ No *novo; novo = (No*)malloc(sizeof(No)); novo->dado = valor; novo->proximo=NULL; if(listaVazia(lista)==1){ lista->primeiro = novo; }else{ (lista->ultimo)->proximo = novo; } lista->ultimo = novo; } void inserirInicio(Lista* lista,int valor){ No *novo; novo = (No*)malloc(sizeof(No)); novo->dado = valor; novo->proximo=NULL; if(listaVazia(lista)==1){ lista->ultimo = novo; }else{ novo->proximo = lista->primeiro; } lista->primeiro = novo; } //Função que adiciona os números pares no início da lista e os números ímpares no final da lista void inserir(Lista* lista, int valor){ if((valor % 2) == 0){ inserirInicio(lista, valor); } else { inserirFinal(lista, valor); } } void listar(Lista* lista){ No* ponteiro = lista->primeiro; while(ponteiro!= NULL){ printf("%d ",ponteiro->dado); ponteiro = ponteiro->proximo; } printf("\n"); } int main(int argc, char *argv[]){ Lista* lista = (Lista*) malloc(sizeof (Lista)); criarLista(lista); int op=0,valor; do{ system("cls"); printf("\n1-Inserir Numero\n2-Listar\n3-Sair\n"); scanf("%d",&op); switch(op){ case 1:printf("\nInforme o Valor:"); scanf("%d",&valor); inserir(lista,valor); break; case 2:system("cls"); listar(lista); system("PAUSE"); } }while(op != 3); system("PAUSE"); return 0; } Muito obrigado.
  9. #include <stdio.h> #include <stdlib.h> struct tipo_no { int dado; struct tipo_no * proximo; }; typedef struct tipo_no No; struct tipo_lista{ No *primeiro; No *ultimo; }; typedef struct tipo_lista Lista; void criarLista(Lista* lista){ lista->primeiro = NULL; lista->ultimo=NULL; } int listaVazia(Lista* lista){ if ((lista->primeiro == NULL) || (lista->ultimo==NULL)) return 1; else return 0; } void inserirFinal(Lista* lista,int valor){ No *novo; novo = (No*)malloc(sizeof(No)); novo->dado = valor; novo->proximo=NULL; if(listaVazia(lista)==1){ lista->primeiro = novo; }else{ (lista->ultimo)->proximo = novo; } lista->ultimo = novo; } void inserirInicio(Lista* lista,int valor){ No *novo; novo = (No*)malloc(sizeof(No)); novo->dado = valor; novo->proximo=NULL; if(listaVazia(lista)==1){ lista->ultimo = novo; }else{ novo->proximo = lista->primeiro; } lista->primeiro = novo; } //Função que adiciona os números pares no início da lista e os números ímpares no final da lista void inserir(Lista* lista, int valor){ if(lista(valor) % 2 = 0){ inserirInicio(); } else { inserirFinal(); } } void listar(Lista* lista){ No* ponteiro = lista->primeiro; while(ponteiro!= NULL){ printf("%d ",ponteiro->dado); ponteiro = ponteiro->proximo; } printf("\n"); } int main(int argc, char *argv[]){ Lista* lista = (Lista*) malloc(sizeof (Lista)); criarLista(lista); int op=0,valor; do{ system("cls"); printf("\n1-Inserir no Final\n2-Inserir no Inicio\n3-Listar\n4-Sair\n"); scanf("%d",&op); switch(op){ case 1:printf("\nInforme o Valor:"); scanf("%d",&valor); inserirFinal(lista,valor); break; case 2:printf("\nInforme o Valor:"); scanf("%d",&valor); inserirInicio(lista,valor); break; case 3:system("cls"); listar(lista); system("PAUSE"); } }while(op != 4); system("PAUSE"); return 0; } Boa tarde! preciso fazer a implementação da função: //Função que adiciona os números pares no início da lista e os números ímpares no final da lista void inserir(Lista* lista, int valor){ if(lista(valor) % 2 = 0){ inserirInicio(); } else { inserirFinal(); } } para caso o novo número inserido seja para, vá para o início da lista e caso ímpar, vá para o final da lista. Para isso já foram implementadas as funções InserirFinal() e InserirInicio(), alguém poderia me ajudar e esclarecer onde estou errando?
  10. @AnsiC Obrigado! O erro era o uso de uma } dá nem pra creditar rsrsrs. muito obrigado.
  11. #include <stdio.h> #include <stdlib.h> struct funcionario{ //struct que cria o tipo char para nome e float para salário char nome[50]; //nome funcionario float salario; //salário funcionário }; typedef struct funcionario funcionario_t; //typedef nomeia a struct funcionario para funcionario_t void cadastra_funcionario(funcionario_t lista_funcionario[], int tamanho_lista) { funcionario_t novo_funcionario; tamanho_lista = 0; printf("Digite nome do funcionario: \n"); scanf("\n%s", novo_funcionario.nome); printf("Digite salario do funcionario \n"); scanf("\n%f", &novo_funcionario.salario); lista_funcionario[tamanho_lista] = novo_funcionario; tamanho_lista++; } funcionario_t maior_salario(funcionario_t lista_funcionario[], int tamanho_lista){ //funcao para maior salario if (tamanho_lista > 0) { int i, maior_indice; float maior_salario = 0; for (i = 0; i < tamanho_lista; i++) { if (lista_funcionario[i].salario > maior_salario) { maior_salario = lista_funcionario[i].salario; maior_indice = i; } printf("Nome funcionario: %s\n", lista_funcionario[maior_indice]); printf("Maior salario funcionario: %f\n", maior_salario); } } } int main(void){ //função main, chama as funcões acima funcionario_t lista_funcionario[50]; int tamanho_lista = 0; int continuar = 1; char opcao; do{ printf("===================================\n"); //insere uma "barra" printf(" Digite 1 para cadastrar: \n Digite 2 para maior salario:\n Digite 0 para sair:\n ==> "); //mostra "menu" em números para evitar case sensitive se houver. scanf("\n\n%c", &opcao); switch(opcao){ case '1': cadastra_funcionario(lista_funcionario, tamanho_lista); //chama funcao cadastra_funcionario tamanho_lista++; break; case '2': maior_salario(lista_funcionario, tamanho_lista); //chama funcao maior_salario break; case '0': continuar = 0; default: // em caso de não informar nenhum numero encerra o programa continuar = 0; } } while (continuar == 1);{ //continuar a execução do do getchar(); return 0; } } Boa tarde! estou tentando desenvolver este programa que tem que ter além da função main, as funções voidcadastra_funcionario e funcionario_tmaior_salario...o ojetivo é que o programa receba os dados dos funcionários e ao solicitar informações sobre o funcionário de maior salário, retorne o Nome e o maior salário...acontece que o printf retorna o nome e o maior salário, de fato, do funcionário, mas a quantidade de vezes do número de funcionários cadastrados...alguém poderia ajudar!?
  12. @devair1010 @Lobarinhas obrigado, guerreiros. vacilei legal...agora rodou, muito obrigado.
  13. #include <stdio.h> #include <locale.h> int main(void) { const int bimestresAnuais = 4; //constantes porque não podem ser alteradas durante o programa, são variáveis fixas. const int numeroDeAlunos = 4; float notasAlunos[numeroDeAlunos][bimestresAnuais] = {0}; float mediasAlunos[numeroDeAlunos] = {0}; float media = 0; int aluno, notas; printf("Insira as 4 notas do aluno 1:\n"); for (aluno = 0; aluno < numeroDeAlunos; aluno++) { for (notas = 0; notas < bimestresAnuais; notas++) { scanf("%f", &notasAlunos[aluno][notas]); media += notasAlunos[aluno][notas]; } mediasAlunos[aluno] = media / bimestresAnuais; media = 0; //reseta a variável média para iniciar novo ciclo printf("Insira as 4 notas do aluno %i:\n", aluno + 2); } for (aluno = 0; aluno < numeroDeAlunos; aluno++) { printf("A media do aluno %i é %.2f\n", aluno + 1, mediasAlunos[aluno], setlocale(LC_ALL, "")); } return 0; system("pause"); } Estou tentando compilar este programa e está apresentando os seguintes erros: In function 'main': [Error] variable-sized object may not be initialized [Warning] excess elements in array initializer [Warning] (near initialization for 'notasAlunos[0]') [Warning] excess elements in array initializer [Warning] (near initialization for 'notasAlunos') [Error] variable-sized object may not be initialized [Warning] excess elements in array initializer [Warning] (near initialization for 'mediasAlunos') Alguém saberia dizer porque está dando esse erro!? no exemplo do professor rodou....
  14. @devair1010 Muito obrigado, Devair. Não conhecia (media_idade += lista_funcionarios[i/**tamanho_lista*/].idade / *tamanho_lista;) esse operador += ficquei com uma certa dúvida nessa linha, mas me ajudou muito.
  15. #include <stdio.h> #include <ctype.h> // Uso da função toupper struct funcionario{ char nome[50]; float idade; }; struct funcionario lista_funcionarios[50]; void cadastra_funcionario(int* tamanho_lista){ printf("Informe o nome do funcionario \n"); scanf("%s[^\n]%*c", lista_funcionarios[*tamanho_lista].nome); printf("Informe a idade do funcionario \n"); scanf("%f%*c", &lista_funcionarios[*tamanho_lista].idade); (*tamanho_lista)++; } void media_idade(struct funcionario lista_funcionarios[], int* tamanho_lista) { if (*tamanho_lista > 0) { int i, maior_indice = 0; float media_idade; media_idade = lista_funcionarios[*tamanho_lista].idade / *tamanho_lista; printf("Media de idade dos funcionarios cadastrados e: %f \n", media_idade); } } int main(void) { int tamanho_lista = 0; int continuar = 1; char opcao; do { printf ("Digite C para cadastrar ou M para saber a media de idade dos funcionarios \n"); scanf("%c%*c", &opcao); opcao = toupper(opcao); switch (opcao) { case 'C': cadastra_funcionario( &tamanho_lista); break; case 'M': media_idade(lista_funcionarios, &tamanho_lista); break; default: continuar = 0; } } while (continuar == 1); getchar(); return 0; } Preciso calcular a média de idade dos funcionários cadastrados...não estou conseguindo, além de, após calcular média, o programa não encerra e continua solicitando para cadastrar ou calcular a media...alguém poderia ajudar-me!? e explicar o que estou fazendo de errado, se possível...

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!