Ir para conteúdo
  • 0
Lyozeu

programação em C

Pergunta

Faça um programa em C com uma função para verificar se um número é positivo ou negativo. Sendo que  o valor de retorno será 1 se positivo, -1 se negativo e 0 se for igual a 0. Faça o programa principal para  chamar e testar a função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

  • 0

eu tô enferrujado, mas acho que isso resolve:

 

#import <stdio.h>

int main() {
  int input;
  int result;

  puts("Informe um número \n");
  scanf("%d", &input);

  if(input > 0) result = 1;
  else if(input < 0) result = -1;
  else result = 0;

  printf("Resultado: %d\n", result);
  return 0;
}

como estou no mac:

 

$ clang main.c -o main
$ ./main 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por lucassilvaeq
      Alguém poderia me ajudar com essa questão ?
       
      Implemente um algoritmo utilizando a linguagem C, que leia um numero indeterminado de valores inteiros. 
      O valor 0 (zero) finaliza a entrada de dados. Para cada valor lido, determinar se ele e um número par ou ímpar. 
      Se o numero for par, então incluí-lo na FILA PAR; caso contrario, incluí-lo na FILA ÍMPAR. 
      Apos o término da entrada de dados, retirar um elemento de cada fila alternadamente (iniciando-se pela FILA ÍMPAR) ate que ambas as filas estejam vazias. Se o elemento retirado de uma das filas for um valor positivo, entao incluí-lo em uma PILHA; caso contrario, remover um elemento da PILHA. 
      Finalmente, imprimir o conteúdo da pilha.
    • Por Jeovane Carvalho
      Saudações Senhores (as), estou aqui para tentar uma solução, eu desenvolvi uma projeto de menu em C para um trabalho da faculdade, porém estou com um problema dentro dele: eu preciso comparar 2 variáveis tipo: se o  usuário cadastrar uma aluno com uma determinada ela irá ficar armazenada numa lista encadeada, e se ele digitar outra matrícula mas usando o mesmo valor , o programa impede de ele cadastrar, até aí eu conseguir fazer , mas quando o usuário cadastrar outro aluno com outro número de matrícula , na hora de tentar cadastrar a terceira matrícula e suando a mesma segunda matrícula ele deixa fazer o cadastro , pois o certo era impedir e apresentar , MATRÍCULA JÁ FOI CADASTRADA..Exemplo..
       
      Cadastrando matricula nº 1 ok , ele não deixa se você tentar usar novamente , mas ao cadastrar a matrícula nº 2 , se tentar usar ele na terceira gravação o programa deixa , e vi que precisava percorrer , pois no while  dando printf ele mostra as matrículas 1 e 2 , e vi quando tento fazer a comparação usando o o while ele compara pelo primeiro  da lista e não percorrer para o segundo, segue o código...
       
      #include<stdio.h> #include<stdlib.h> #include<locale.h> #include<string.h> #define MAX 3 typedef struct lista{ int matricula; int cod; int NovaMatricula; char aluno[50]; char disciplina1[50]; char disciplina2[50]; char disciplina3[50]; float nota1; float nota2; float nota3; float nota4; float nota5; float nota6; float nota7; float nota8; float nota9; int vazio; struct lista *prox; lista *anterior; lista *inicio; lista *novo; lista *atual; lista *ultimo; lista *aux; }Tlista; Tlista registros[MAX]; void flush_in(){ int ch; while( (ch = fgetc(stdin)) != EOF && ch != '\n' ){} } int verifica_pos( Tlista *dados ) { int cont = 0; Tlista *aux = dados->inicio; while ( aux !=NULL) { cont++; aux = aux->prox; } return(cont); } void inicializa(Tlista *dados){ dados-> inicio = NULL; dados-> ultimo = NULL; dados-> atual = NULL; dados-> aux = NULL; } // AQUI É O CÓDIGO QUE COMPARA A MATRÍCULA// //aqui seria a função que teria que comparar todas as matrículas ou códigos se são iguais...// //FUNÇÃO VERIFICA CÓDIGO int verifica_cod( Tlista *dados, lista *novo){ lista *aux=NULL; printf("\na matricula nova nova %d\n\n", novo->matricula); aux=dados->inicio; if(aux==NULL){ printf("entrou no primero IF %d",novo->matricula); return (1); } dados->atual=dados->inicio; if(novo->matricula==aux->matricula){ while(aux!=NULL){ printf("%d",aux->matricula); aux=aux->prox; } return(0); } printf("\n\n Matricula no FOR: %d\n",dados->atual->matricula); printf("entrou no segundo IF %d", novo->matricula); return (1); }//Final da Função Verifica Código void cadastrar(Tlista *dados, lista *novo){ lista* aux=NULL; if (!novo){ printf("\nNao existe espaco na memoria!"); exit(1); } printf("\n\t\t Digite Nome do Aluno: "); scanf("%s",&novo->aluno); printf("\n\t\t Digite a 1º Disciplina : "); scanf("%s",&novo->disciplina1); flush_in(); printf("\n\t\t Nota do 1º Bimestre: "); scanf("%f",&novo->nota1); fflush(stdin); printf("\n\t\t Nota do 2º Bimestre: "); scanf("%f",&novo->nota2); fflush(stdin); printf("\n\t\t Nota do 3º Bimestre: "); scanf("%f",&novo->nota3); printf("\n\t\t Digite a 2º Disciplina : "); scanf("%s",&novo->disciplina2); fflush(stdin); printf("\n\t\t Nota do 1º Bimestre: "); scanf("%f",&novo->nota4); fflush(stdin); printf("\n\t\t Nota do 2º Bimestre: "); scanf("%f",&novo->nota5); fflush(stdin); printf("\n\t\t Nota do 3º Bimestre: "); scanf("%f",&novo->nota6); printf("\n\t\t Digite a 3º Disciplina : ",setlocale(LC_ALL,"")); scanf("%s",&novo->disciplina3); fflush(stdin); printf("\n\t\t Nota do 1º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&novo->nota7); fflush(stdin); printf("\n\t\t Nota do 2º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&novo->nota8); fflush(stdin); printf("\n\t\t Nota do 3º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&novo->nota9); printf("NOVA %d\n\n", &aux->matricula); printf("\nA matricula e : %d\n\n",novo->matricula); novo->prox=NULL; if(dados->inicio==NULL){ dados->inicio=novo; dados->ultimo=novo; }else{ dados->ultimo->prox=novo; dados->ultimo=novo; } printf("\nMatricula Cadastrada com sucesso !\n\n"); system("pause"); } void listar(Tlista *dados){ Tlista*aux; aux=dados->inicio; if(aux==NULL){ printf("\n Lista Vazia ! \n\n"); }else{ dados->atual=dados->inicio; while(aux!=NULL){ printf("\n\nMatricula %d\n\n", aux->matricula); aux=aux->prox; } } system("pause"); } void consultar(Tlista *dados){ int matbusca,encontrou=0; printf("\n\nDigite a matricula para busca: "); scanf("%d",&matbusca); if (dados->inicio==NULL){ printf("\nLista vazia! Busca nao pode ser processada!\n"); }else{ for (dados->atual=dados->inicio; dados->atual!=NULL;dados->atual=dados->atual->prox){ if (matbusca==dados->atual->matricula){ printf("\n\nMatricula: %d\n",dados->atual->matricula); encontrou=1; break; } if (dados->atual->prox==NULL && encontrou==0) printf("\n\nRegistro nao encontrado!\n\n"); } } system("pause"); } void excluir(Tlista *dados){ lista *anterior ,*atual; int numMatricula,encontrou=0; if(dados->inicio==NULL){ printf("Não existe dados para excluir !\n\n"); system("pause"); }else{ int numMatricula; printf("\nDigite um numero de matricula : ",setlocale(LC_ALL,"")); scanf("%d", &numMatricula); anterior=dados->inicio; atual=dados->inicio; while(atual!=NULL) { if(atual->matricula==numMatricula){ if(atual==dados->inicio){ dados->inicio=dados->inicio->prox; free(atual); break; }else{ if(atual==dados->ultimo){ dados->ultimo=anterior; } //refazendo o encadeamento// anterior->prox=atual->prox; free(atual); break; } }else{ anterior=atual; atual=atual->prox; } } printf("\nMatricula excluida com sucesso !\n\n"); system("pause"); } } int main(){ Tlista inicio,*aux, L; int op=0,posicao,retorno,matricula,NovaMatricula; inicializa(&L); while(op!=6){ system("cls"); printf("--- Digite 1 para cadastrar : "); printf("\n\n--- Digite 2 para listar : "); printf("\n\n--- Digite 3 para consultar : "); printf("\n\n--- Digite 4 para excluir : "); scanf("%d", &op); switch(op) { case 1: posicao=verifica_pos(&L); printf("%d", posicao); if(posicao!=MAX){ lista *novo=NULL; novo=(lista*)malloc(sizeof(lista)); printf("\n\t\t Digite o número da matrícula para o aluno : ",setlocale(LC_ALL,"")); scanf("%d",&novo->matricula); fflush(stdin); retorno = verifica_cod(&L,novo); if ( retorno == 1 ){ cadastrar(&L,novo); }else{ printf("\n\t\tEste número de Matrícula já existe. Tente Outro !\n\n"); printf("\t\t ");system("pause\n\n"); } }else{ printf("\n Voce nao pode realizar mais cadastros !\n\n"); system("pause"); } break; case 2: listar(&L); getchar(); break; case 3: consultar(&L); break; case 4: excluir(&L); break; case '5':printf("\nFIM DE EXECUCAO!"); getchar(); exit(1); default:break; } } } Deixei comentado no código para melhor entendimento... Obrigado !
    • Por Jeovane Carvalho
      Alguém poderia me dar um help, de como fazer um laço de repetição dentro de uma lista encadeada em C /C++, pois consigo normalmente sem lista de encadeamento, mas estou com dificuldades em fazer nessa situação, segue o código.
      int verifica_pos( void ) { int cont = 0; while ( cont <=2) { if ( registros[cont].vazio == 0 ) return(cont); cont++; } return(-1); }//Final da verifica Posição Por exemplo, neste trecho de código acima, eu chamo uma função que chama esse código e teria que fazer uma varredura em um vetor para ver quantos dados existem na lista encadeada.
    • Por Jeovane Carvalho
      Olá Senhores , estou aqui para um help dos senhores mais experientes, e estou com um problema em meu código, pois desenvolvi um menu em C, e esta funcionando praticamente em tudo, e só não consegui imprimi todos os dados na tela ..
       
      Por exemplo, se eu cadastrar mais de 1 aluno em meu sistema eu consigo visualizar de boa buscando pela matrícula, mas se eu pedi para listar todos os alunos cadastrados, ele só busca o primeiro e os outros ele não retorna, segue abaixo o código....
       
       
      #include<stdio.h> #include<stdlib.h> #include<locale.h> #include<string.h> struct cadastro { int matricula; char aluno[50]; char disciplina1[50]; char disciplina2[50]; char disciplina3[50]; float nota1; float nota2; float nota3; float nota4; float nota5; float nota6; float nota7; float nota8; float nota9; int codaux[20]; int vazio; int cod; }; struct cadastro registros[50]; void flush_in(){ int ch; while( (ch = fgetc(stdin)) != EOF && ch != '\n' ){} } //Funçoes que serao usadas void cadastrar(int cod, int pos); //Funçao para consulta void listar( void ); //Funçao para consulta void consultar( void ); //Funçao para exibir relatorio int relatorio( void ); //Função para verificar posição int verifica_pos( void ); //Função para verificar codigo int verifica_cod( int cod ); //Função para verificar posição do codigo int verifica_pos( void ); //Função para excluir cadastro void excluir( void ); int main(void){ int op = 0,senha,posicao, matricula, retorno; printf("######### SISTEMA DE NOTAS DE ALUNOS: ##############\n\n "); do { printf(" DIGITE UMA SENHA : "); scanf ("%d",&senha); if(senha!=1) { printf("Senha incorreta. Tente Novamente \n\n"); system("pause"); system("cls"); } } while(senha!=1); while(op!=5){ system("cls"); printf ("\n\n *** MENU DE NOTAS DE ALUNO: ***\n\n ",setlocale(LC_ALL,"")); printf ("| 1 - Matrícula do Aluno |\n",setlocale(LC_ALL,"")); printf (" | 2 - Lista de Alunos |\n",setlocale(LC_ALL,"")); printf (" | 3 - Listar dados do Aluno |\n",setlocale(LC_ALL,"")); printf (" | 4 - Pesquisar por Matrícula |\n",setlocale(LC_ALL,"")); printf (" | 5 - Sair |\n",setlocale(LC_ALL,"")); scanf ("%d", &op); switch(op) { case 1: // CADASTRAR { posicao=verifica_pos(); if ( posicao != -1 ) { printf("\nDigite o número da matrícula para o aluno : "); scanf("%d",&matricula); fflush(stdin); retorno = verifica_cod( matricula); if ( retorno == 1 ) cadastrar( matricula, posicao ); else printf("\nCodigo ja existente\n"); system ("pause"); } else printf("\nNao e possivel realizar mais cadastros!\n"); break; } case 2: // LISTAR { listar(); break; } case 3:// CONSULTAR { consultar(); break; } case 4:// EXCLUIR { excluir(); system ("pause"); break; } // SAIR case 5: { printf("\n Saindo do Sistema - Tchau"); getchar(); return 0; break; } default :// OPÇÃO INVÁLIDA printf("Opcão Inválida",setlocale(LC_ALL,"")); break; } } getchar(); } // FUNÇAO CADASTRAR void cadastrar( int cod, int pos ) { pos = verifica_pos(); registros[pos].cod = cod; printf("\nDigite Nome do Aluno: "); scanf("%s",&registros[pos].aluno); printf("\nDigite a 1º Disciplina : "); scanf("%s",&registros[pos].disciplina1); flush_in(); printf("\nNota do 1º Bimestre: "); scanf("%f",&registros[pos].nota1); fflush(stdin); printf("\nNota do 2º Bimestre: "); scanf("%f",&registros[pos].nota2); fflush(stdin); printf("\nNota do 3º Bimestre: "); scanf("%f",&registros[pos].nota3); printf("\nDigite a 2º Disciplina : "); scanf("%s",&registros[pos].disciplina2); fflush(stdin); printf("\nNota do 1º Bimestre: "); scanf("%f",&registros[pos].nota4); fflush(stdin); printf("\nNota do 2º Bimestre: "); scanf("%f",&registros[pos].nota5); fflush(stdin); printf("\nNota do 3º Bimestre: "); scanf("%f",&registros[pos].nota6); printf("\nDigite a 3º Disciplina : ",setlocale(LC_ALL,"")); scanf("%s",&registros[pos].disciplina3); fflush(stdin); printf("\nNota do 1º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&registros[pos].nota7); fflush(stdin); printf("\nNota do 2º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&registros[pos].nota8); fflush(stdin); printf("\nNota do 3º Bimestre: ",setlocale(LC_ALL,"")); scanf("%f",&registros[pos].nota9); registros[pos].vazio = 1; printf("\nCadastro Realizado com Sucesso!\n\n",setlocale(LC_ALL,"")); getchar(); system("cls"); } //Final da Função Cadastrar // FUNÇAO LISTAR void listar() { setlocale(LC_ALL," "); int i,j,cod,posicao,pos, retorno; pos = verifica_pos(); for (i=0; i<pos; i++ ) { if (registros[i].vazio==1) { printf("\n\n\nRESULTADO DA BUSCA: \n\n"); printf("\nForam encontrado (os) Aluno (s) : %d\n" ,registros[i].cod); printf("**********************************************\n\n"); printf("\nMatrícula : %d\n",registros[i].cod); printf("\nNome do Aluno é: %s\n" ,registros[i].aluno); printf("\nDisciplina : %s\n",registros[i].disciplina1); printf("\nNota do 1º Bimestre: %.1f\t",registros[i].nota1); printf("\nNota do 2º Bimestre: %.1f\t",registros[i].nota1); printf("\nNota do 3º Bimestre: %.1f\n",registros[i].nota3); printf("\nDisciplina : %s\n",registros[i].disciplina2); printf("\nNota do 1º Bimestre: %.1f\t",registros[i].nota4); printf("\nNota do 2º Bimestre: %.1f\t",registros[i].nota5); printf("\nNota do 3º Bimestre: %.1f\n",registros[i].nota6); printf("\nDisciplina : %s\n",registros[i].disciplina3); printf("\nNota do 1º Bimestre: %.1f\t",registros[i].nota7); printf("\nNota do 2º Bimestre: %.1f\t",registros[i].nota8); printf("\nNota do 3º Bimestre: %.1f\n",registros[i].nota9); printf("\n\n"); printf("**********************************************\n\n"); system("pause"); getchar(); break; } i++; } if (registros[i].vazio==0) { printf("\nCódigo não encontrado\n\n"); system("pause"); system("cls"); return ; } } //FUNÇÃO CONSULTAR void consultar( void ) { int cont = 0, cod,posicao, retorno,codaux; printf("\nEntre com o código: ",setlocale(LC_ALL,"")); scanf("%d",&cod); system("cls"); while ( cont <= 100 ) { if (registros[cont].cod==cod) { if (registros[cont].vazio==1) { printf("\n\n\nRESULTADO DA BUSCA: \n\n"); printf("\nForam encontrado (os) Aluno (s) : %d\n" ,registros[cont].cod); printf("**********************************************\n\n"); printf("\nMatrícula : %d\n",registros[cont].cod); printf("\nNome do Aluno é: %s\n" ,registros[cont].aluno); printf("\nDisciplina : %s\n",registros[cont].disciplina1); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota3); printf("\nDisciplina : %s\n",registros[cont].disciplina2); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota4); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota5); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota6); printf("\nDisciplina : %s\n",registros[cont].disciplina3); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota7); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota8); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota9); printf("\n\n"); system ("pause"); system("cls"); break; } } cont++; if (registros[cont].vazio==0) { printf("\nCódigo não encontrado\n\n",setlocale(LC_ALL,"")); system("pause"); system("cls"); return ; } } } //FUNÇÃO VERIFICA POSIÇÃO int verifica_pos( void ) { int cont = 0; while ( cont <= 100 ) { if ( registros[cont].vazio == 0 ) return(cont); cont++; } return(-1); } //FUNÇÃO ZERAR void zerar( void ) { int cont; for ( cont = 0; cont <= 100; cont++ ) registros[cont].vazio = 0; } //FUNÇÃO VERIFICA CODIGO int verifica_cod( int cod ) { int cont = 0; while ( cont <= 100 ) { if ( registros[cont].cod == cod ) return(0); cont++; } return(1); } //FUNÇÃO EXCLUIR void excluir( void ) { int cod, cont = 0; char resp; printf("\nEntre com o código do registro que deseja excluir\n",setlocale(LC_ALL,"")); scanf("%d", &cod ); while ( cont <= 100 ) { if ( registros[cont].cod == cod ) { // FALTOU if ( registros[cont].vazio == 1 ) { printf("\n\n\nRESULTADO DA BUSCA: \n\n"); printf("\nForam encontrado (os) Aluno (s) : %d\n" ,registros[cont].cod); printf("**********************************************\n\n"); printf("\nMatrícula : %d\n",registros[cont].cod); printf("\nNome do Aluno é: %s\n" ,registros[cont].aluno); printf("\nDisciplina : %s\n",registros[cont].disciplina1); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota1); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota3); printf("\nDisciplina : %s\n",registros[cont].disciplina2); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota4); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota5); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota6); printf("\nDisciplina : %s\n",registros[cont].disciplina3); printf("\nNota do 1º Bimestre: %.1f\t",registros[cont].nota7); printf("\nNota do 2º Bimestre: %.1f\t",registros[cont].nota8); printf("\nNota do 3º Bimestre: %.1f\n",registros[cont].nota9); getchar(); printf("\nDeseja realmente excluir ? S/N:"); scanf("%c",&resp); if ( ( resp == 'S' ) || ( resp == 's' ) ) { registros[cont].vazio=0; printf("\nExclusão feita com sucesso\n\n"); break; } else { if ( ( resp == 'N' ) || ( resp == 'n' ) ) { printf("Exclusão cancelada!\n"); break; } } } } cont++; if ( cont > 100 ) printf("\nCodigo nao encontrado\n"); } system("pause"); system("cls"); } Como eu disse, ele roda de boa só não lista todos os alunos e apenas 0 1º, um #trabalhozinho de faculdade.. Obrigado !
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.