
Lucas Pelepek
Membro Pleno-
Posts
55 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Lucas Pelepek postou
-
Função que escreve e lê o arquivo binário: int FUNCAO_QUE_GRAVA_BIN (char filename[],int partida1,char resultado1) { typedef struct { int partida; char jogvelha[3][3]; char resultado; } velha; velha partida = {partida1,{"a","b"},resultado1},read_data; FILE * file= fopen(filename, "wb"); if (file != NULL) { fwrite(&partida, sizeof(velha), 1, file); fclose(file); FILE* fin = fopen(filename, "rb"); fread(&read_data, sizeof(velha), 1, file); printf("%d %c %c\n", read_data.partida, read_data.jogvelha[3][3], read_data. resultado); fclose(fin); fflush(stdin); while(getchar()!='\n'); // option TWO to clean stdin getchar(); // wait for ENTER return 0;//failure //ignore } return 1; //sucesso /ignore } chamando no main : int ganhador=1; char local[]={"binar"}; int partidas= 1; FUNCAO_QUE_GRAVA_BIN(local,partidas,ganhador); o problema é que o output está saindo tudo errado, o jogvelha[3][3] não sai direito, como arrumar?
-
HTML Criar uma lista clicavel de uma database
Lucas Pelepek postou um tópico em Web e banco de dados
Um usuário escreve um titulo e um texto, que então são guardados em uma table, há como criar uma lista desses títulos que então se clicados redirecionam ao texto relacionado? o usuário se quiser pode escrever mais títulos e textos, e então a lista pode crescer. apenas queria saber se essa lista pode ser feita, consigo criar listas, porém não de uma database que recebeu input de um user. não sei se algo assim é possível, obrigado desde já, aprecio qualquer dica. -
PHP Parse error: syntax error, unexpected ';' .
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em Web e banco de dados
tinha um " ( " a mais na linha 36 ,. -
PHP Parse error: syntax error, unexpected ';' .
Lucas Pelepek postou um tópico em Web e banco de dados
Bom dia, tarde, noite. problema: Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\check_form.php on line 37 no codigo: else if ((filter_var($_POST["Email"],FILTER_VALIDATE_EMAIL)){ $erro_Email = "Email é invalido." ; // <---- linha 37 $erro = true; } codigo completo: <?php function verifica_campo($texto){ $texto = trim($texto); $texto = stripslashes($texto); $texto = htmlspecialchars($texto); return $texto; } function verifica_campoEmail($texto){ $texto = filter_var($texto,FILTER_VALIDATE_EMAIL); return $texto; } $consenha= ""; $senha= ""; $datanasc= ""; $Email= ""; $nome = ""; $erro = false; if ($_SERVER["REQUEST_METHOD"] == "POST") { if(empty($_POST["nome"])){ $erro_nome = "Nome é obrigatório."; $erro = true; } else{ $nome = verifica_campo($_POST["nome"]); } if(empty($_POST["Email"])){ $erro_Email = "Email é obrigatório."; $erro = true; } else if ((filter_var($_POST["Email"],FILTER_VALIDATE_EMAIL)){ $erro_Email = "Email é invalido." ; // <----linha 37 $erro = true; } if(empty($_POST["datanasc"])){ $erro_datanasc = "datanasc é obrigatório."; $erro = true; } else{ $datanasc = verifica_campo($_POST["datanasc"]); } if(empty($_POST["senha"])){ $erro_senha = "senha é obrigatório."; $erro = true; } else if ((strcmp($_POST["senha"],$_POST["consenha"])) != 0 ){ $erro_senha = "senha nao bate com consenha."; $erro = true; } if(empty($_POST["consenha"])){ $erro_consenha = "consenha é obrigatório."; $erro = true; } else{ $consenha = verifica_campo($_POST["consenha"]); } } ?> ainda estou trabalhando nele (obviamente), porém esse erro não me deixa ir pra frente. caso precisem do resto do cod: obrigado desde já. -
C Matriz imprimindo uma letra a mais.
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
valeu, mas já tinha conseguido fazer assim: for (z = 0; z <= cod; z++) { for ( i = 0; i < strlen(matrizcopia[z]) ; i++) { printf("%c",matrizcopia[z][i]); } if(z<=0){ printf("\n"); } }} -
C Matriz imprimindo uma letra a mais.
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
opa, a variavel ( i ) já está sendo inicializada no proprio FOR, mesmo colocando ela lá em cima dá o mesmo resultado. mas como você disse: era só ter mudado o anda. for (int i = 0; i <= (anda-1); i++) { matrizcopia[cod][i]=(portas[i] ? 'O' : 'C'); } cod+=1; } outra mudança pra não ter espaço entre os outputs: for (int i = 0; i < strlen(matrizcopia[z]) ; i++) { printf("%c",matrizcopia[z][i]); }}} o unico problema é que está tendo 2 linhas puladas no final, não sei de onde elas vem, mas obrigado pela ajuda. #include <stdio.h> #include <string.h> void main() { int c, anda, numero,i, x,y,cod,z ,num; y=0; cod=0; char portas[100]; char matrizcopia[1000][1000]; while( 1 ) // 1 faz ser loop eterno { while (1)// loop pra verificar se está dentro dos limites { // printf("Escreva o numero de andares e quanto numeros jogara:\n"); scanf( "%d %d", &anda, &numero ); if ( (anda <= 100 && anda >= 1) && (numero <=200 && numero >= 1) || (anda == 0 && numero == 0) ) { y+=anda; break; }} if( anda == 0 && numero == 0 ) // sai do loop caso 0 0 { break; } for( c=0; c<anda; c++ ) // zera o vetor { portas[c] = 0; } for( c=0; c<numero; c++ ) // le as jogados de acordo com o numero lido antes { //printf("\njogada(%d): ",c+1); scanf( "%d", &num ); for( x=num-1; x<anda; x+=num )// inverte o vetor nas portas calculadas { portas[x] = !portas[x]; }} for ( i = 0; i <= (anda-1); i++) { matrizcopia[cod][i]=(portas[i] ? 'O' : 'C'); } cod+=1; } for (z = 0; z <= cod; z++) { for ( i = 0; i < strlen(matrizcopia[z]) ; i++) { printf("%c",matrizcopia[z][i]); } printf("\n"); }} -
bom dia/tarde/noite. #include <stdio.h> #include <string.h> void main() { int c, anda, numero, x,y,cod,z ,num; y=0; cod=0; char portas[100]; char matrizcopia[1000][1000]; while( 1 ) // 1 faz ser loop eterno { while (1)// loop pra verificar se está dentro dos limites { printf("Escreva o numero de andares e quanto numeros jogara:\n"); scanf( "%d %d", &anda, &numero ); if ( (anda <= 100 && anda >= 1) && (numero <=200 && numero >= 1) || (anda == 0 && numero == 0) ) { y+=anda; break; }} if( anda == 0 && numero == 0 ) // sai do loop caso 0 0 { break; } for( c=0; c<anda; c++ ) // zera o vetor { portas[c] = 0; } for( c=0; c<numero; c++ ) // le as jogados de acordo com o numero lido antes { printf("\njogada(%d): ",c+1); scanf( "%d", &num ); for( x=num-1; x<anda; x+=num )// inverte o vetor nas portas calculadas { portas[x] = !portas[x]; }} for (int i = 0; i <= anda; i++) { matrizcopia[cod][i]=(portas[i] ? 'O' : 'C'); } cod+=1; } for (int z = 0; z <= cod; z++) { printf("\n"); for (int i = 0; i < 200; i++) { printf("%c",matrizcopia[z][i]); }}} colocando esse imput: 5 3 3 4 2 0 0 o resultado deveria dar: COOCC porém no meu codigo ele adciona uma letra a mais: COOCCO não importa qual imput. não consigo achar por onde essa letra tá entrando, HELP! obrigado desde já.
-
Javascript Calculador usando javascript, Não funciona!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em Web e banco de dados
É que eu não coloquei aspas nos números na hora da soma, por isso minha pergunta, mas valeu. adicionado 1 minuto depois @DiF <!DOCTYPE html> <html> <head> <style> caixa { width: 300px; border: 2px solid black; padding: 25px; margin: 25px; box-sizing: border-box; display: inline-block; } alinhador { text-align: center; margin-right: auto; margin-left: auto; } entrada[type=number] { width: 100%; padding: 12px 20px; margin: 8px 0; box-sizing: border-box; display: inline-block; } </style> </head> <body> <alinhador> <h1> <caixa>calculador</caixa> </h1> <form> <input type="number" id="p1" name="p1" /> <select id="operador" name="operador"> <option value= "+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="number" id="p2" name="p2"> <p id="resultado">=</p> <button id="button" onclick="mais()">calcular!</button> </form> </alinhador> <script> function mais (){ var p1 = document.getElementById("p1").value; var p2 = document.getElementById("p2").value; for (var i = 0; i < tama.length; i++) { p1 = parseInt(tama[i]); p2 = parseInt(tama[i]); } var resultado1 = document.getElementById("resultado"); resultado1.innerHTML = p1 + p2; } </script> </body> </html> valeu, porém mesmo assim não funciona. alguma ideia? o resultado não aparece. -
Javascript Calculador usando javascript, Não funciona!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em Web e banco de dados
entendi, mas de que lugar tiro? testei em todos relacionados aos 2 números , a unica diferença é que não aparece o resultado mais. -
Javascript Calculador usando javascript, Não funciona!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em Web e banco de dados
valeu tenho que ficar mais ligado, só que agora, ex: caso eu digite : 10 + 11, aparece como resultado : 1011. -
Javascript Calculador usando javascript, Não funciona!
Lucas Pelepek postou um tópico em Web e banco de dados
<!DOCTYPE html> <html> <head> <style> caixa { width: 300px; border: 2px solid black; padding: 25px; margin: 25px; box-sizing: border-box; display: inline-block; } alinhador { text-align: center; margin-right: auto; margin-left: auto; } entrada[type=number] { width: 100%; padding: 12px 20px; margin: 8px 0; box-sizing: border-box; display: inline-block; } </style> </head> <body> <alinhador> <h1> <caixa>calculador</caixa> </h1> <form> <input type="number" id="p1" name="p1" /> <select id="operador" name="operador"> <option value= "+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="number" id="p2" name="p2"> <p id="resultado"></p> <button id="button" onclick="mais()">calcular!</button> </form> </alinhador> <script> function mais (){ var p1 = document.getElementById("p1").value; var p2 = document.getElementById("p2").value; var resultado1 = document.getElementById("resultado"); resultado1.innerhtml = p1 + p2; } </script> </body> </html> bom dia/tarde/noite. sou muito novato em programação web, e estava tentando fazer esse calculador, porém mesmo seguindo os tutoriais ele não calcula! com certeza devo estar fazendo algo errado muito obvio. só quero que o resultado apareça, o resto do código eu termino depois. -
C segmentation fault (core dumped) !!!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
acabou que no final podia usar struct, dai pulei a matriz, rsrsrs, mas valeu pela ajuda. -
C segmentation fault (core dumped) !!!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
acho que entendi, mas parece que não. if (!strcmp(w,email[1][c])) me atrapalhei totalmente na matriz, acho que tenho que refazer. ainda core dump. -
C segmentation fault (core dumped) !!!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
opa, bem, eu alterei pra isso: #include <stdio.h> #include <stdlib.h> #include <string.h> #define co 2 #define li 2 int main() { char w[41]; char x[41]; char email[co][li]; int c,l,cont; for (c=0; c < co; c++) { printf("Email numero: %d\n",c); printf("email e senha:\n"); for (l = 0; l < li; l++) { scanf("%s",&email[c][l]); } } printf("\ndigite email: "); scanf("%s",&x); for (c=0; c < co; c++) { if (!strcmp(x,email[1][c])) { printf("\ndigite a senha: "); scanf("%s",&w); if (!strcmp(w,email[2][c])) { printf("\nBem vindo"); } else { printf("\nsenha incorreta"); } } else { printf("\nemail não encontrado"); } } } não sei se foi isso que voce tentou me passar, em qualquer caso, o erro acontece depois dessa parte que você me alertou, ou ainda estou errado? -
Bom dia,tarde,noite. Estou um tempo sem programar em C, acabei ficando enferrujado. objetivo do programa: Faça um programa que permita o cadastro de 5 logins com e-mail (máximo de 40 caracteres) e senha (máximo de 10 caracteres). Depois, peça para um usuário fazer o login digitando e-mail e senha. Se alguma informação for inválida, repetir. Se for certa, mostrar uma mensagem de confirmação de login e encerrar o programa. (não pode usar struct, nesse caso usei matriz). #include <stdio.h> #include <stdlib.h> #include <string.h> #define co 2 #define li 2 int main() { char w[41]; char x[41]; char email[co][li]; int c,l,cont; for (c=1; c <= co; c++) { printf("Email numero: %d\n",c); printf("email e senha:\n"); for (l = 1; l <= li; l++) { scanf("%s",&email[c][l]); } } printf("\ndigite email: "); scanf("%s",&x); for (c=1; c <= co; c++) { if (!strcmp(x,email[1][c])) { printf("\ndigite a senha: "); scanf("%s",&w); if (!strcmp(w,email[2][c])) { printf("\nBem vindo"); } else { printf("\nsenha incorreta"); } } else { printf("\nemail não encontrado"); } } } porém acontece o "segmentation fault (core dumped)" geralmente quando acontecia isso erá porque eu tinha esquecido um &, mas não é o caso. problema ocorre aqui: printf("\ndigite email: "); scanf("%s",&x);
-
C Lendo string em um while ocorre loop infinito
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
@LuisOPsum Opa, obrigado , tava apressado e esqueci de mudar o soma pra outra coisa, hahaha, era só pra fazer um exemplo, implementei a dica de vocês em um outro codigo maior, muito obrigado . @isrnick entendi, não sabia disso,tava quebrando minha cabeça, valeu, consertou o codigo , vou aplicar sua instrução no futuro . @giu_d Ficou lindo, soma era só um exemplo, mas consegui implementar perfeitamente no meu codigo principal. -
bom dia,tarde,noite. #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int n; char x[30]; printf("Escreva qual deseja:\nsoma\nencerrar\nR: "); while (strcmp(x,"encerrar")!=0) { scanf ("%[^\n]%*c",&x); if (strcmp(x, "soma")==0) { printf("\nDigite um numero decimal: "); scanf("%d",&n); printf ("\n%d",n); } } printf("\nEncerrando programa ...\n"); } Não sei porque apos a digitação da escolha "soma" ele não retorna ao primeiro scanf? ele continua na soma para sempre. Obrigado desde já.
-
C Como pegar o Nome certo em uma struct?
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
Opa, era isso mesmo, hahaha, valeu pela ajuda, vou aplicar sua dica nos proximos. adicionado 5 minutos depois já tinha mandado antes de ver sua edição. ficou mil vezes melhor do jeito que voce ajeitou hahaha, tenho que usar como exemplo. valeu pelo limpa linha, irei usar futuramente. adicionado 26 minutos depois @giu_d um pequeno erro aqui: menor_media = aluno[0].media; for (i = 0; i < n; i++) { if (menor_media > aluno[i].media) { menor_media = aluno[i].media; nome_media = i; } } mudando o menor_media para: menor_media = maior_media; for (i = 0; i < n; i++) { if (menor_media > aluno[i].media) { menor_media = aluno[i].media; nome_media = i; } } arruma. -
Bom dia/tarde/noite. #include <stdio.h> #include <string.h> # define n 3 typedef struct fichaaluno { int matricula; char nome [30]; int nota1 ; int nota2 ; int nota3 ; float media; } ; struct fichaaluno aluno[n]; void main() { float maiormedia; int a,b,c; int tam,maiorno1,x1,x2,x3; int nomenota1aluno,mediasoma,nomemediaaluno; for (a=0;a<n;a++) { // printf("matricula: "); // scanf("\n%d",&aluno[a].matricula); printf("nome:"); fflush(stdin); fgets(aluno[a].nome,25,stdin); tam=strlen(aluno[a].nome); if(aluno[a].nome[tam-1]=='\n') aluno[a].nome[--tam]='\0'; fflush(stdin); printf("nota1: "); scanf("\n%d",&aluno[a].nota1); printf("nota2: "); scanf("\n%d",&aluno[a].nota2); printf("nota3: "); scanf("\n%d",&aluno[a].nota3); printf("\n"); while ( (c = getchar()) != '\n' && c != EOF ); } maiorno1=aluno[0].nota1; printf("\naluno com maior nota na primeira prova: "); for (a=0;a<n;a++) { if (maiorno1<aluno[a].nota1) maiorno1=aluno[a].nota1; nomenota1aluno=a; //printf("\nmatricula: %d\nnome: %s\nnota1: %d\nnota2: %d\nnota3: %d\n", aluno[a].matricula, aluno[a].nome, aluno[a].nota1, aluno[a].nota2, aluno[a].nota3 ); } printf("\nnota:%i aluno: %s\n",maiorno1,aluno[nomenota1aluno].nome); printf("\naluno com maior media: "); for (a=0;a<n;a++){ x1=aluno[a].nota1; x2=aluno[a].nota2; x3=aluno[a].nota3; aluno[a].media= (x1+x2+x3)/3; } maiormedia=0; for (a=0;a<n;a++) { if (maiormedia<aluno[a].media) maiormedia=aluno[a].media; nomemediaaluno=a; } printf("\nmedia: %.2f aluno: %s\n",maiormedia,aluno[nomemediaaluno].nome); printf("\naluno com a menor media: "); float menormedia=maiormedia; int menormediaaluno; for (a=0;a<n;a++) { if (menormedia>aluno[a].media) menormedia=aluno[a].media; menormediaaluno=a; } printf("\nmedia: %.2f aluno: %s",menormedia,aluno[menormediaaluno].nome); } O problema de logica é nessa parte: maiormedia=0; for (a=0;a<n;a++) { if (maiormedia<aluno[a].media) maiormedia=aluno[a].media; nomemediaaluno=a; //<-------------- } printf("\nmedia: %.2f aluno: %s\n",maiormedia,aluno[nomemediaaluno].nome); printf("\naluno com a menor media: "); float menormedia=maiormedia; int menormediaaluno; for (a=0;a<n;a++) { if (menormedia>aluno[a].media) menormedia=aluno[a].media; menormediaaluno=a; // <------------ } printf("\nmedia: %.2f aluno: %s",menormedia,aluno[menormediaaluno].nome); Tanto o 'nomemedialuno' quanto o 'menormediaaluno' apenas mostram o ultimo imput lido, em vez de mostrarem o que tem a maior media e menor media respectivamente. As medias são mostradas corretamentes, só o nome que sempre sai errado, não consigo pensar numa logica para arrumar isso. qualquer ajuda agradeço : ) .
-
C segmentation fault, não acho o problema!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
@Math.Pi Consegui arrumar o problema do scanf pedindo duas vezes imput, mudando a posição do \n pra antes do % . fiz a mudanças que você indicou e mudei o tamanho dos vetores, agora está funcionado corretamente, obrigado pelas dicas. #include <stdio.h> #include <string.h> int main(void) { int x,alunos,l,k,j,e,h,somanota; char gaba[9],respalu[9]; int nota[9]={0,0,0,0,0,0,0,0,0}; printf("GABARITO:\n"); for ( x = 1; x < 9; x++) { printf("quest�o:%d\n",x); fflush(stdin); scanf("\n%c", &gaba[x]); } alunos=2; for (k=1;k<=alunos;k++){ printf("aluno:%d\n",k); somanota=0; for ( h = 1; h < 9; h++) { printf("quest�o:%d\n",h); fflush(stdin); scanf("\n%c", &respalu[h]); } for ( j = 1; j < 9; j++) { if (gaba[j] == respalu[j]) somanota+=1; } nota[k]=somanota; } for ( e = 1; e <= alunos; e++) { printf("aluno:%d\n",e); printf("nota:%d\n",nota[e]); } } -
C segmentation fault, não acho o problema!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
usando o fflush(stdin); deu o mesmo resultado. foi mal, força do habito,mudei. não entendi, ele está comparando o aluno com o gabarito. if (alu[j] == gaba[j]) nota[j]=1; <----- problema aqui talvez? #include <stdio.h> #include <string.h> int main(void) { int x,alunos,l,k,j,e,h; char gaba[7],alu[7]; int nota[7]={0,0,0,0,0,0,0}; printf("GABARITO:\n"); for ( x = 1; x < 9; x++) { printf("questão:%d\n",x); fflush(stdin); scanf("%c\n",&gaba[x]); } alunos=1; for (k=1;k<=alunos;k++){ printf("aluno:%d\n",k); for ( h = 1; h < 9; h++) { printf("questão:%d\n",h); fflush(stdin); scanf("%c\n",&alu[h]); } for ( j = 1; j < 9; j++) { if (alu[j] == gaba[j]) nota[j]=1; } } for ( e = 1; e <= alunos; e++) { printf("aluno:%d\n",e); printf("nota:%d\n",nota[e]); } } -
C segmentation fault, não acho o problema!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
opa, valeu, agora funcionou, mais ou menos, mesmo colando todas respostas corretas o programa só fala que cada aluno acertou = o numero de alunos. exemplo tendo 2 alunos: aluno 1: nota:2 aluno2: nota:2 outra coisa é que ele está lendo 2 vezes do teclado cada vez vem uma questão, pode ser o "setbuf(stdin,NULL);"?. exemplo: "questão 1: a a questão 2: a a ..." #include <stdio.h> #include <string.h> int main(void) { int x,z,l,k,j,e,h; char y[7],w[7]; int b[7]={0,0,0,0,0,0,0}; printf("GABARITO:\n"); for ( x = 1; x < 9; x++) { printf("questão:%d\n",x); setbuf(stdin,NULL); scanf("%c\n",&y[x]); } z=2; for (k=1;k<=z;k++){ printf("aluno:%d\n",k); for ( h = 1; h < 9; h++) { printf("questão:%d\n",h); setbuf(stdin,NULL); scanf("%c\n",&w[h]); } for ( j = 1; j < 9; j++) { if (w[j] == y[j]) ; b[j]=1; } } for ( e = 1; e <= z; e++) { printf("aluno:%d\n",e); printf("nota:%d\n",b[e]); } } -
C segmentation fault, não acho o problema!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
@Math.Pi Edentei e adicionei "#include <string.h>" caso seja algum problema com o "strcmp", o programa compila, mas dá esses Warning: |28|warning: passing argument 1 of 'strcmp' makes pointer from integer without a cast [-Wint-conversion]|. |28|warning: passing argument 2 of 'strcmp' makes pointer from integer without a cast [-Wint-conversion]| pesquisando parece que tenho que por "*", mas não entendi. #include <stdio.h> #include <string.h> int main(void) { int x,z,l,k,j,e,h; char y[7],w[7]; int b[7]; printf("GABARITO:\n"); for ( x = 1; x < 9; x++) { printf("questão:%d\n",x); setbuf(stdin,NULL); scanf("%c\n",&y[x]); } printf("numero de alunos:\n"); setbuf(stdin,NULL); scanf("%d\n",&z); for (k=1;k<=z;k++){ printf("aluno:%d\n",x); for ( h = 1; h < 9; h++) { printf("questão:%d\n",h); setbuf(stdin,NULL); scanf("%c\n",&w[h]); } for ( j = 1; j < 9; j++) { l= (strcmp (w[j],y[j])); //erro if (l==1) { b[j]++; } } } for ( e = 1; e <= z; e++) { printf("aluno:%d\n",e); printf("nota:%d\n",b[e]); } } -
C segmentation fault, não acho o problema!
Lucas Pelepek respondeu ao tópico de Lucas Pelepek em C/C#/C++
opa, valeu, Mudei todos o For's pra garantir : ). #include <stdio.h> int main(void) { int x,z,l,k,j,e,h; char y[7],w[7]; int b[7]; printf("GABARITO:\n"); for ( x = 1; x < 9; x++) { printf("questão:%d\n",x); setbuf(stdin,NULL); scanf("%c\n",&y[x]); } printf("numero de alunos:\n"); setbuf(stdin,NULL); scanf("%d\n",&z); for (k=1;k<=z;k++){ printf("aluno:%d\n",x); for ( h = 1; h < 9; h++) { printf("questão:%d\n",h); setbuf(stdin,NULL); scanf("%c\n",&w[h]); } //Segmentation fault for ( j = 1; j < 9; j++) { l= (strcmp (w[j],y[j])); if (l==1) { b[j]++; } } } for ( e = 1; e <= z; e++) { printf("aluno:%d\n",e); printf("nota:%d\n",b[e]); } } mas agora dá: Process returned -1073741819 (0xC0000005) . -
bom dia/tarde/noite. questão: 1. Faça um programa para corrigir provas de múltipla escolha. Cada prova tem oito questões, e cada questão vale um ponto, exceto as questões 3 e 8 que valem 2.0 pontos cada uma. O primeiro conjunto de dados a ser lido é o gabarito da prova. Os outros dados são os números dos alunos, e as respostas que deram às questões. Existem 10 alunos matriculados. Calcule e mostre o número e a nota de cada aluno. #include <stdio.h> int main(void) { int x,z,l; char y[7],w[7]; int b[7]; printf("GABARITO:\n"); for ( x = 1; x < 9; x++) { printf("questão:%d\n",x); setbuf(stdin,NULL); scanf("%c\n",&y[x]); } printf("numero de alunos:\n"); setbuf(stdin,NULL); scanf("%d\n",&z); for (x=1;x<=z;x++){ printf("aluno:%d\n",x); for ( x = 1; x < 9; x++) { printf("questão:%d\n",x); setbuf(stdin,NULL); scanf("%c\n",&w[x]); } //Segmentation fault for ( x = 1; x < 9; x++) { l= (strcmp (w[x],y[x])); if (l==1) { b[x]++; } } } for ( x = 1; x <= z; x++) { printf("aluno:%d\n",x); printf("nota:%d\n",b[x]); } } O programa tem vários erros, mas o que está me impedindo de continuar é esse segmentation fault, não faço ideia o do porque isso acontece, sou iniciante em C. se alguém tiver alguma dica, agradeço : ).
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