Ir ao conteúdo
  • Cadastre-se

devair1010

Membro Pleno
  • Posts

    6.293
  • Cadastrado em

  • Última visita

Tudo que devair1010 postou

  1. @Robs156 você colocou para escrever o valor de i , mas melhor seria escrever o valor de n , e acrescentando depois o incremento em n , descartando assim essa variável o i .
  2. @Sathosi @Sathosi o enunciado não diz , mas creio que seria para criar um programa que calcula a raiz Quadrada , e não usar uma função , "sqrt()" , já pronta da linguagem C , e também não precisa pegar o número pois será usado aqueles do exemplo , que tem Raiz exata , e para extrair a raiz Quadrada você pode usar a multiplicação , #define WIN32_WINNT 0x600 #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <windows.h> #define _h GetStdHandle(STD_OUTPUT_HANDLE) /// Faça um programa que calcula a raiz quadrada de um número /// Assuma que apenas números que possuem raiz quadrada inteira /// serão passados para o programa (e.g. 4, 9, 16, etc) /// Você não precisa implementar o algoritmo para números que /// não possuem raiz quadrada inteira, e.g. 3, 5, 11, etc int raizQuadrada( int ); int main() { int numero = 81; int raiz = 0; printf( "Digite um Numero -: "); /// scanf ( "%d" , & numero ); raiz = raizQuadrada( numero );/// sqrt(numero); printf("Raiz = %d \n",raiz); return 0; } int raizQuadrada( int x ) { int y = 1; /// combinado no enunciado que while( y * y != x ) /// só vai receber num inteiro e posit { /// e com raiz exata if( y * y != x ) { y++; } } if( y<=x )return y; return 0; } e é claro que a multiplicação também é outra função que pode ser simplificada usando somas sucessivas , e em C não tem necessidade , mas no neanderWin , sim , pois esse compilador do hipotético processador "neander" tem apenas comando básicos elementares , de armazenamento , soma , subtração e comparações , assim uma simples multiplicação da linguagem C se torna bem trabalhosa sesse compilador neaderWin , que você pode baixar nesse site https://sourceforge.net/projects/neander-x/ baixe o neander X , que é o mesmo neanderwin ;-------------------------------- ; Programa -: Multiplic ; Autor ----: Devair ; Data -----: 11/12/2022 ;-------------------------------- org 0 ldi 0 ; carrega A com val 0 sta 128 ; valor iniciaL ldi 1 ; increment do loop sta 129 ; guard em end 129 ldi 7 ; num p multipl sta 130 ; Multiplicando L1: ; inicio do loop sta 131 ; Multiplicad qtd vezes jz fim ; se for zero pula p fim lda 128 ; carrega acumulador A add 130 ; soma com conteu end sta 128 ; armaz nesse ender lda 131 ; carreg acumul A sub 129 ; subtrai 1 jmp L1 ; jump incond p L1 fim: ; label lda 128 ; carrega o valor calc out 0 ; mostra result hlt ; termino do prg e a raiz Quadrada também pode ser calculada com esse programa , fazendo nele alguma adaptações .
  3. @Lucas Chevette você já sabe alguma coisa sobre programação ?
  4. @ningumx e mesmo colocando a quantidade de alunos em 24 não funcionou , e deletando aquele loop for , e escrevi ele novamente , aí funcionou , #define WIN32_WINNT 0x600 #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <windows.h> #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <locale.h> #include <time.h> typedef struct { int id_aluno ; char nm_aluno[50]; } arq_aluno ; void consulta( arq_aluno Alunos[] , int quant_alunos ) { FILE *entrada = fopen("alunos.txt", "r"); int id; if( entrada == NULL ) { printf( "Erro na leitura do arquivo ,. . . !\n"); return; } printf("\n------BUSCA DE ALUNOS------\n"); printf("Digite o id do aluno: "); scanf("%i", &id); getchar(); for (int i = 1; i <= quant_alunos; i++) { if (id == Alunos[i].id_aluno) { printf("Aluno: %s\n", Alunos[i].nm_aluno); } else if (id != Alunos[i].id_aluno) printf("Aluno não existe na base!\n"); } printf("---------------------------\n"); fclose(entrada); } void relatorio( arq_aluno Alunos[] , int quant_alunos ) { FILE* entrada = fopen("alunos.txt", "r"); if( entrada == NULL ) { printf( "Erro na leitura do arquivo ,. . . !\n"); return; } int i; printf("_____________________________\n\n" " ----RELATÓRIO DE ALUNOS---- \n" "___________________________ \n" "--------------------------- \n" "| ID | NOME | \n"); SetConsoleTextAttribute( _h , 11 + ( 0 << 4 ) ); for ( int i=0; i<24; i++ ) { fscanf(entrada, "%d", &Alunos[i].id_aluno ); fscanf(entrada, "%s", &Alunos[i].nm_aluno ); printf(" %3d | %s\n", Alunos[i].id_aluno, Alunos[i].nm_aluno); } struct tm *data_hora_atual; time_t segundos; time(&segundos); data_hora_atual = localtime(&segundos); printf("-----------------------------\n\n"); printf ( "_______________________________\n\n" " Gerado em %d/%d/%d %i:%i:%i" , data_hora_atual->tm_mday , data_hora_atual->tm_mon + 1 , data_hora_atual->tm_year + 1900 , data_hora_atual->tm_hour , data_hora_atual->tm_min , data_hora_atual->tm_sec ); fclose(entrada); } int main() { FILE* arq; int quant_alunos = 24 ; arq_aluno Alunos [24]; int cor_letra, cor_fundo; CONSOLE_SCREEN_BUFFER_INFO c; if( GetConsoleScreenBufferInfo( _h, & c ) ) { cor_letra = ( c.wAttributes & 0xFF ) & 0x0F; cor_fundo = ( (c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } int escolha; arq = fopen("alunos.txt","a"); /// abre para ler ou gravar a partir o final do arquivo fprintf(arq,"%s","5 kiko\n"); /// id antes e nome depois fclose( arq ); do { setlocale(LC_ALL, ""); struct tm *data_hora_atual; time_t segundos; time(&segundos); data_hora_atual = localtime(&segundos); printf("\nAcesso em %d/%d/%d %i:%i:%i\n\n", data_hora_atual->tm_mday, printf ( "\nAcesso em %d/%d/%d %i:%i:%i\n\n", data_hora_atual->tm_mday , data_hora_atual->tm_mon + 1 , data_hora_atual->tm_year + 1900 , data_hora_atual->tm_hour , data_hora_atual->tm_min , data_hora_atual->tm_sec ); SetConsoleTextAttribute( _h , 14 + ( 0 << 4 ) ); printf(" --MENU PRINCIPAL--\n"); printf("|------------------------|\n"); printf("| [1] - Consultar por id |\n" "| [2] - Relatório |\n" "| [3] - Sair |\n" "-------------------------|\n" " Opção: " ); scanf("%d", &escolha); switch (escolha) { case 1: consulta( Alunos , quant_alunos ); break; case 2: relatorio( Alunos , quant_alunos ); break; case 3: SetConsoleTextAttribute( _h , 12 + ( 15 << 4 ) ); printf(" Saindo do Programa . . . !\n\n\n"); SetConsoleTextAttribute( _h , cor_letra + ( cor_fundo << 4 ) ); } } while ( escolha != 3 ); return 0; }
  5. @ningumx a quantidade de alunos está em zero typedef struct aluno { int id_aluno ; char nm_aluno[50]; } arq_aluno ; // VARIÁVEIS GLOBAIS int quant_alunos = 24 ; /// estava em zero arq_aluno arq_alunos[24];
  6. @ningumx nessa linha aqui você colocou a posição 50 da string for (int i = 1; i <= 24; i++) { fscanf(entrada, "%d", &arq_alunos[i].id_aluno); fscanf(entrada, "%s", &arq_alunos[i].nm_aluno[50]); /// não precisa informar a posiCAo } e o vetor começa em zero e vai ate 23 , assim não precisa colocar o sinal de igual for ( int i=0; i<24; i++ ) você já inseriu alguma coisa nesse arquivo ?
  7. @alan.modesto em cada posição da memória do pc sempre tem alguma coisa guardada nela , então não se pode excluir nada , apenas substituir por outro valor qualquer , e quando se cria um vetor , o compilador reserva um espaço na memória para armazenar a quantidade de valores especificada , e não modifica nada que já esteja armazenado nessas posições , assim pode haver qualquer valor , e se você quer que tenha um valor considerado nulo , como o zero , por exemplo , então ao criar o vetor já preencha ele tendo todas as posições com esse valor "zero " , também conhecido como inicialização de variáveis , , .., , ... ,: int v3[QUANT] = { 0 } ; que mostra
  8. @alicesky12 para que pegar o resto da divisão , só precisa saber se a divisão é exata , e creio que pode ser assim : #define WIN32_WINNT 0x600 #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <windows.h> #define _h GetStdHandle(STD_OUTPUT_HANDLE) /// Faça um módulo que receba o dividendo e o divisor /// de uma fração e substitua seus /// valores pelos equivalentes valores simplificados. void simplif( int* num , int* den ) { int ax = *num; int aux = 0; if( *num > *den )ax = *den; for(int i=2; i<ax; i++) { if( *num % i == 0 && *den % i == 0 ) { aux = i; } } if( aux ) { *num /= aux; *den /= aux; } } int main() { int* n = 0; int* m = 0; int cor_letra, cor_fundo; CONSOLE_SCREEN_BUFFER_INFO c; if( GetConsoleScreenBufferInfo( _h, & c ) ) { cor_letra = ( c.wAttributes & 0xFF ) & 0x0F; cor_fundo = ((c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } SetConsoleTextAttribute( _h , 11 + ( 0 << 4 ) ); printf("escreva o primeiro numero -: "); scanf("%d", & n ); printf("escreva o segundo numero --: "); scanf("%d", & m ); simplif( & n , & m ); SetConsoleTextAttribute( _h , 10 + ( 12 << 4 ) ); printf("\n\n SimpliFicado "); SetConsoleTextAttribute( _h , 12 + ( 15 << 4 ) ); printf("\b\b\b\b\b\b\b\b\b %d/%d ", n , m ); SetConsoleTextAttribute( _h , cor_letra + ( cor_fundo << 4 ) ); printf("\n\n\n"); return 0; }
  9. @Sahel_Sancho mantendo o código igual você postou , na opção 2 a função "adicionaNotas" não retornou o que cadastrou , e nem pegou o retorno da função , e acertando ficaria assim : #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <string.h> #define MAX 5 /// aqui estabelece a qtd de cadastros typedef struct Aluno { char nome[100]; int matricula; float nota [2]; } Aluno; Aluno cadastrarAluno() { Aluno aluno; SetConsoleTextAttribute( _h, 14 + ( 0 << 4) ); printf( "\nInsira o nome do aluno -------: "); scanf ( "%s", & aluno.nome ); printf( "Insira o numero de matricula -: " ); scanf ( "%i", & aluno.matricula ); return aluno; } Aluno adicionaNotas(Aluno aluno) { printf("\n"); SetConsoleTextAttribute( _h, 15 + ( 12 << 4 ) ); printf( "Insira a primeira nota de %s: \b\b", aluno.nome ); scanf ( "%f", & aluno.nota[0] ); printf( "Insira a segunda nota de %s: \b\b", aluno.nome ); scanf ( "%f", & aluno.nota[1] ); return aluno ; } void mostraResultados(Aluno aluno) { SetConsoleTextAttribute( _h, 12 + ( 15 << 4) ); float media = ( aluno.nota[0] + aluno.nota[1] ) / 2; /// MAX eh a qtd de cadastros printf("\n Aluno ------: %s \n" " Matricula --: %i \n" " Media ------: %5.2f \n", aluno.nome, aluno.matricula, media); if( media >= 7 ) { printf( " Aprovado . . . ! \n" ); } else { printf( " Reprovado . . . ! \n" ); } } int main() { Aluno aluno[5]; /// melhor colocar esse comando antes do while int cor_letra, cor_fundo; CONSOLE_SCREEN_BUFFER_INFO c; if( GetConsoleScreenBufferInfo( _h , & c ) ) { cor_letra = ( c.wAttributes & 0xFF ) & 0x0F; cor_fundo = ( ( c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } while( 1 ) { int escolha; SetConsoleTextAttribute( _h, 11 + ( 0 << 4) ); /// cor anil em fundo preto printf("\n" " [1] Cadastrar \n" " [2] Lancar Notas \n" " [3] Listar Resultados\n" " [4] Sair \n" " Digite o numero da opcao desejada: "); scanf("%i", &escolha); if(escolha == 1) { int i; for( i = 0; i < MAX; i++ ) /// alguns compiladores aceita criar a variAvel dentro do loop { aluno[i] = cadastrarAluno(); } } if( escolha == 2 ) { int i; for(i = 0; i < MAX; i++) /// alguns compiladores aceita criar a variAvel dentro do loop { aluno[i] = adicionaNotas(aluno[i]); } } if( escolha == 3 ) { int i; printf("\n FunCAo MostrarResultado \n"); for(i = 0; i < MAX; i++) /// alguns compiladores aceita criar a variAvel dentro do loop { mostraResultados(aluno[i]); } } if(escolha == 4) { SetConsoleTextAttribute( _h, 10 + ( 12 << 4 ) ); printf("\n\n\t\t\tFim do programa . . . ! \n\n\n"); SetConsoleTextAttribute( _h, cor_letra + ( cor_fundo << 4 ) ); return 0; } } }
  10. @Sahel_Sancho @Sahel_Sancho aquele aluno que está lá na função adicionaNotas não é o mesmo que está na mostrarResultado não , void adicionaNotas(Aluno aluno) { printf("\nInsira a primeira nota de %s: ", aluno.nome); scanf("%f", &aluno.nota[0]); printf("\nInsira a segunda nota de %s: ", aluno.nome); scanf("%f", &aluno.nota[1]); } que modificada seria assim Aluno adicionaNotas(Aluno aluno) { printf("\nentrada da Funcao\n" "nome -------= %s \n" "matricula --= %3d \n" "nota -------= %5.2f\n", aluno.nome, aluno.matricula, aluno.nota[0] ); printf( "Insira a primeira nota de %s: ", aluno.nome); scanf ( "%f" , & aluno.nota[0] ); printf( "Insira a segunda nota de %s: ", aluno.nome); scanf ( "%f" , & aluno.nota[1] ); printf("\n saida da Funcao\n" "nome ------= %s \n" "matricula -= %3d \n" "nota ------= %5.2f\n", aluno.nome, aluno.matricula, aluno.nota[0] ); return aluno; } e seu código ficou assim : #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> #define _h GetStdHandle(STD_OUTPUT_HANDLE) #include <string.h> #define MAX 1 typedef struct Aluno { char nome[100]; int matricula; float nota[2]; } Aluno; Aluno cadastrarAluno() { Aluno aluno; printf( "\nInsira o nome do aluno -----: "); scanf ( "%s" , & aluno.nome ); printf( "Insira o numero de matricula -: "); scanf ( "%i" , & aluno.matricula ); return aluno; } Aluno adicionaNotas(Aluno aluno) { printf("\nentrada da Funcao\n" "nome -------= %s \n" "matricula --= %3d \n" "nota -------= %5.2f\n", aluno.nome, aluno.matricula, aluno.nota[0] ); printf( "Insira a primeira nota de %s: ", aluno.nome); scanf ( "%f" , & aluno.nota[0] ); printf( "Insira a segunda nota de %s: ", aluno.nome); scanf ( "%f" , & aluno.nota[1] ); printf("\n saida da Funcao\n" "nome ------= %s \n" "matricula -= %3d \n" "nota ------= %5.2f\n", aluno.nome, aluno.matricula, aluno.nota[0] ); return aluno; } void mostraResultados(Aluno aluno) { printf("\nFunCAo MostrarResultado\n" "nome -------= %s \n" "Matricula --= %3d \n" "nota -------= %5.2f \n", aluno.nome , aluno.matricula , aluno.nota[0] ); float media = aluno.nota[0] + aluno.nota[1] / MAX; printf("\nAluno ----: %s \n" "Matricula --: %i \n" "Media ------: %5.2f\n", aluno.nome, aluno.matricula, media); if( media >= 7 ) { printf( "Aprovado\n" ); } else { printf( "Reprovado\n" ); } } int main() { Aluno aluno[5]; while( 1 ) { int escolha; printf("\n" " [1] Cadastrar \n" " [2] Lancar Notas \n" " [3] Listar Resultados\n" " [4] Sair \n" " Digite o numero da opcao desejada: "); scanf("%i", &escolha); if(escolha == 1) { int i; for( int i = 0; i < MAX; i++ ) /// alguns compiladores aceita criar a variAvel dentro do loop { aluno[i] = cadastrarAluno(); printf("\nretorno do Cadastro\n" "nome -------= %s \n" "Matricula --= %3d \n" "nota -------= %5.2f \n", aluno[i].nome , aluno[i].matricula , aluno[i].nota[0] ); /// faltou oS colchets e enviar para o sof } } if( escolha == 2 ) { int i; for(i = 0; i < MAX; i++) /// alguns compiladores aceita criar a variAvel dentro do loop { aluno[i] = adicionaNotas(aluno[i]); printf( "\nretorno de adicionarNotas\n" "nome -------= %3s \n" "Matricula --= %3d \n" "nota -------= %5.2f \n", aluno[i].nome , aluno[i].matricula , aluno[i].nota[0] );/// esse aqui estava faltando os colchetes /// colocar cor também e gotoxy /// cria uma moldura para a teLa } } if( escolha == 3 ) { int i; for(i = 0; i < 1; i++) /// alguns compiladores aceita criar a variAvel dentro do loop { mostraResultados(aluno[i]); } } if(escolha == 4) { printf("\nFim do programa"); return 0; } } }
  11. @Joao Huertas no visualG 3.0 você pega os dados do teclado usando o comando leia( variavel ) , e para comparar use o comando se ... então // sem Til fimse e depois que você fizer um código sobre esse exercício , poste aqui e ajudaremos .
  12. @Igor Rossoni creio que possa ser por que você não inicializou os dados do vetor antes de usa lo , pois o Compilador criou o vetor totalLPI reservando um espaço na memória , e nesse espaço com certeza há algum valor já armazenado nele , e você não sabe que valor seja esse , e ao somar o valor dessa posição do vetor com a nota do Aluno , conterá um valor desconhecido e pouco provável de estar certo . float totalLPI [5] = {0}; float mediaLPI [5] = {0}; float totalAlg [5] = {0}; float mediaAlg [5] = {0}; float totalDisc [5] = {0}; float mediaDisc [5] = {0}; float totalGeralAlg = 0 ; float mediaGeralAlg = 0 ; float maiorAlg = 0 ; float maiorDisc = 0 ; float maiorLPI = 0 ; e soma com o valor pego no scanf for( int k=0; k<3; k++ ) /// alguns compiladores aceitam cria a varAvel dento do Loop { l=0; printf("NOTA %d: ", k+1); scanf("%d", &nLPI[l][k]); printf("valor lpi[ %d ]= %5.2f\n" , i , totalLPI[ 0 ] ); system("pause"); totalLPI[i] += nLPI[l][k]; l++; }
  13. @jelmig você pode usar o método upper() , que converte todos os caracteres da string para maiúsculas , depois na procurar na string , as palavras com mais de dois caracteres . e se você fizesse um código sobre esse exercício , post ele aqui e ajudaremos se precisar . .
  14. @Dev0011 e você quer transmitir esses dados para uma única tv philco ? , ou muitas outras ? se for apenas em uma , você pode conectar pela outra saída de vídeo do seu pc , ou a VGA ou a HDMI ou dvi .
  15. @rickinhoohh muito boa essa configuração , e esses componentes e mais esse monitor https://www.pichau.com.br/monitor-gamer-pichau-24-full-HD-curvo-athen-c24m-1ms-144hz-HDMI-dp-pgm-ac24m vai ficar em 8k . . . !
  16. @Leticia da Silva existe vários métodos de ordenação de vetores , e os mais conhecidos pode ser o bubbleSort , selectionSort , e outros . . . ! , mas esses tem um conceito mais apurado e mais difícil de fazer e entender e demora mais tempo para fazer a organização , e tem esse , ancoraSort , que considero bem simples e fácil e rápido , pois na primeira passada ele já decide o menor ou o maior número que existe no vetor , dependendo da necessidade , e nesse seu código , você cadastra o nome e o tempo , e o tempo é o tempo gasto por cada um dos competidores , e quanto menor o tempo , mais em primeiro chegou , assim a ordenação pode classificar dos que chegaram em primeiro para os que chegaram por último , e assim , depois da ordenação o primeiro é o vencedor : e nesse vídeo pode se ver como é o funcionamento dos vários métodos: cada passada da barra vermelha representa uma volta no loop mais interno , e as barras brancas são os números , que vão sendo organizados do menor para o maior . representação Gráfica dos métodos de ordenação : https://www.youtube.com/watch?v=rQTQF46o16k https://www.youtube.com/watch?v=kPRA0W1kECg&t=75s #include <stdio.h> #include <windows.h> #include <stdlib.h> #define NUMERO_DE_CORREDORES 5 #define TAMANHO_MAXIMO_DO_NOME 500 #define _h GetStdHandle(STD_OUTPUT_HANDLE) int ordenacao ( char nome[][500] , float* tempo ); char gravar_arq( char nome[][500] , float* tempo ); char ler_arq ( char nome[][500] , float* tempo ); float informacao(char nome[][TAMANHO_MAXIMO_DO_NOME], float tempo[NUMERO_DE_CORREDORES]) { int i; SetConsoleTextAttribute( _h , 12 + ( 10 << 4 ) ); printf(" Nome Tempo \n"); for( int i=0; i<5; i++ ) /// alguns compiladores / IDE's aceitam criar a variAvel dntro do Loop printf("\n %8s == %8.2f ", nome[i], tempo[i]); } void cadastro( char nome[][ TAMANHO_MAXIMO_DO_NOME ] , double tempo[ NUMERO_DE_CORREDORES ] ) { int i = 0; int maior = 0; double total = 0; for( int i=0; i<NUMERO_DE_CORREDORES; i++ ) { fflush(stdin); printf("\nInforme o nome do corredor %d: ", i+1); fgets(nome[i], TAMANHO_MAXIMO_DO_NOME,stdin); printf("Insira o tempo de %s: ", nome[i]); scanf("%lf", &tempo[i]); } } int main() { int cor_letra , cor_fundo; CONSOLE_SCREEN_BUFFER_INFO c; if( GetConsoleScreenBufferInfo( _h , & c ) ) { cor_letra = ( c.wAttributes & 0xFF ) & 0x0F; cor_fundo = ((c.wAttributes & 0xFF ) >> 4 ) & 0x0F; } int opcao; char nome [ NUMERO_DE_CORREDORES ][ TAMANHO_MAXIMO_DO_NOME ] = { "kiko" ,"lolipop" ,"juju" ,"kolip" ,"lopol" }; float tempo[ NUMERO_DE_CORREDORES ] = { 2.21 , 0.98 , 1.83 , 1.26 , 2.02 }; float numeros[] = { 0.0 }; do { SetConsoleTextAttribute( _h , 11 + ( 0 << 4 ) ); printf("\n=======================\n\n" " 1 - Cadastro de Corredores\n" " 2 - informações \n" " 3 - ClassificaCAo Geral \n" " 4 - Gravar Arquivo \n" " 5 - Ler Arquivo \n" " 6 - Sair \n" " Escolha Uma opcao " ); scanf( "%d" , & opcao ); printf("\n\n"); SetConsoleTextAttribute( _h , 7 + ( 0 << 4 ) ); switch( opcao ) { case 1: cadastro(nome,tempo); break; case 2: informacao(nome, tempo); break; case 3: ordenacao(nome, tempo); break; case 4: gravar_arq(nome,tempo); break; case 5: ler_arq(nome, tempo); break; case 6: printf("\n\n\tSainDo Do Programa . . . !"); break; default: printf("\nOpCAo InvaLida . . . !\n"); } } while( opcao != 6 ); printf("\n\n\n"); return 0; } int ordenacao( char nome[][500] , float* tempo ) { char ax[500]; printf("OrdenaCAo dos competidores por tempo\n" ); for( int i=0; i<NUMERO_DE_CORREDORES; i++ ) { for( int j=i+1; j<NUMERO_DE_CORREDORES; j++ ) { if( tempo[i] > tempo[j] ) { float aux = tempo[i]; tempo[i] = tempo[j]; tempo[j] = aux; strcpy( ax , nome[i] ); strcpy( nome[i] , nome[j] ); strcpy( nome[j] , ax ); } } } return 0; } char gravar_arq( char nome[][500] , float* tempo ) { return NULL; } char ler_arq ( char nome[][500] , float* tempo ) { return NULL; }
  17. @raonyreis13 @raonyreis13 e você pode postar a configuração desse seu pc , o nome e a marca da placa-mãe , da fonte , e memória ?
  18. @Leticia da Silva na hora de ordenar pelo tempo , ao modificar a posição no vetor tempo , modifique também no vetor de nomes . o que está na mesma posição .
  19. @JorgeGus obrigado , me salvou de novo !
  20. @raonyreis13 qual placa você está usando com esse xeon ? , você já viu se ela é compatível com esse xeon ?, e não basta trocar o processador e tã tudo certo , não , precisa formaTar e instalar o windows ou linux de novo , pois os driver's são outro de cada processador .
  21. @Belírio não está completo , ali só está testando se tem número repetido ou não , precisa incluir esse trecho no seu código do #1 post , e ficaria assim : #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> #define _h GetStdHandle(STD_OUTPUT_HANDLE) int main () { int valor[10]; int i; int cor_letra, cor_fundo; CONSOLE_SCREEN_BUFFER_INFO c; if(GetConsoleScreenBufferInfo( _h, &c)) { cor_letra = ( c.wAttributes & 0xFF) & 0x0F; cor_fundo = ((c.wAttributes & 0xFF) >> 4) & 0x0F; } for (i=0; i<10; i++) { printf("\n\t||Digite 10 valores diferentes: "); scanf("%d",&valor[i]); for (int j = 0; j < i; j++) { if (valor[j] == valor[i]) { printf("%d -> Numero repetido\n", valor[i]); i -= 1; break; } } } SetConsoleTextAttribute(_h, 12 + ( 10 << 4 ) ); printf("\n\tOs valores armazenados são: %d\n\n",i); for( int i=0; i<10; i++) printf("%3d \n",valor[i] ); SetConsoleTextAttribute(_h, cor_letra + ( cor_fundo << 4 ) ); printf("\n\n\n"); return 0; }
  22. @.if realmente , o enunciado , diz para apenas informar que o número já foi digitado , e então não precisa que ao digitar um outro número , ele não exista no vetor , e no Replit está dando um erro que não sei como resolver mesmo .
  23. @alan.modesto você não disse que erro que dá , mas aqui no codeblocks , não deu nenhum erro , não , apenas também não fez nada , e mostrou uma tela toda preta , mas ele não funciona por que você não inicializou a variável "i" , assim o valor é desconhecido e o compilador termina a execução para não gravar dados em local que não pode , e acertando isso , seria assim #include <stdio.h> #include <stdlib.h> #include <time.h> #define TAM 3 void preencherAleatorio (int vetor[], int tamanho) { //declaração de variáveis int i = 0; int igual = 0; int j = 0; do // faça { vetor[i] = rand() % tamanho; // sorteia um número igual = 0; for(j = 0; j < i; j++) // percorre a parte do vetor já preenchida { if(vetor[j] == vetor[i]) igual = 1; // número repetido } if(igual == 0) // significa que o elemento não se repetiu i++; } while(i < tamanho); // enquanto não for sorteado TAM números diferentes for(i = 0; i < tamanho; i++) { printf("%d ", vetor[i]); } printf("\n\n"); } //implementação das funções int exibirVetor (int vetor[], int tamanho, int vetor1[]) { //declaração de variáveis int i, j,cont = 0; // passando um vetor dentro de outro para seguir ordem de posiçao printf ("\nVetor: "); for (i=0 ; i<tamanho; i++) { if(vetor1[vetor[i]] <= vetor1[vetor[i+1]]) { cont++; } printf ("%d ", vetor1[vetor[i]]); } // 1 para crescente, 0 para não crescente if( cont == tamanho-1) { return 1; } else { return 0; } printf ("\n\n"); } int main(void) { srand(time(NULL)); int A[TAM] = {5,10,11} ; int B[TAM] = {2,1,0} ; // usando um B pré ordenado para testar int C[TAM]; int resp; preencherAleatorio(C, TAM); resp = exibirVetor(C, TAM, A); printf ("\nVetor: %d ", resp); return 0; }
  24. @marcos holanda12 a função de login está , sim ,funcionando , e pode ser também de outras formas #include<stdio.h> #include<locale.h> #include<string.h> int login(){ char login[15] = "teste"; //Tem que ter mais espaço que a string. Pelo menos 1 a mais que a palavra. char login1[15]; //Pode ser do mesmo tamanho que o login char senha[15] = "teste"; char senha1[15]; printf("LOGIN: "); scanf("%s",login1); //String se lê com %s if (strcmp(login, login1) == 0) //strcmp() é uma função da biblioteca string.h que compara 2 strings. Se for igual a 0 é porque as duas são iguais. { printf("Logado\n"); } else { printf("error\n"); } return 0; }
  25. @Belírio esse loop while while (j--) if (valor[i]==valor[j-1]) { printf("\n\tOs valores armazenados são: %d",i); } não resolve nada , apenas mostra uma msg , e então o que precisa é verificar se o número já está colocado em alguma das posições do vetor , e se não houver nenhum igual , aí coloca esse número nessa posição "[ i ]" do vetor , e você pode testar isso dentro do loop FOR mesmo , mas o loop ficaria grande e resolvendo muitas coisas , então use uma função que verifica o número e retorna 1 se já tem o número no vetor ou retorna zero se não , #include<stdio.h> int verifica( int*, int, int ); int main () { int valor[10] = {0}; /// todas as posições de vetor inicializadas com valor zero int i; int ret = 0; int numero = 0; printf("\n\t||____* Digite 10 valores diferentes -:\n\n"); for (i=0; i<10; i++) { do { printf(" %d%c nUmero ", i+1 , 167 ); /// o 167 Eh o cOdigo ASCII do sImbolo º ordinal scanf( "%d", & numero ); ret = verifica( valor, i, numero ); printf("valor de Retorno da FunCAo = %3d\n",ret); if ( ret == 1 ) { printf("\n\tEste valor já foi digitado, digite um valor diferente\n"); } } while( ret ); /// repete enquanto achar no vetor um numero igual ao digitado valor[ i ] = numero; /// finalmente armazena o nUmero no vetor printf( "\n\n\n" ); } printf("\n\tOs valores armazenados sAo: %d nUmeros . . . !\n\n" , i ); for( i=0; i<10; i++ ) printf( "\t%3d PosiCAo = %3d\n" , i , valor[ i ] ); printf( "\n\n\n" ); return 0; } int verifica( int* v, int tam, int num ) { printf("tam ---= %3d\n",tam); printf("num ---= %3d\n",num); /// ver se a funCAo recebeu os valores corretos for( int j=0; j<tam; j++ ) /// alguns compiladores aceitam cria a variAvel dentro do Loop { printf("v[ %d ] = %3d\n",j,v[j] ); /// mostra a valor que já esta no vetor if( v[ j ] == num ) /// testa se o nUmero Eh igual em cada uma das posições do veTor return 1; /// achou um numero igual ; já no vetor } return 0; /// retorna zero pois o nUmero não tem nenhum outro igual }

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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!