Comparar Matriz e vetor de char [RESOLVIDO]

1. Comparar Matriz e vetor de char [RESOLVIDO]

Rafael L.
SrKon

(usa Manjaro Linux)

Enviado em 02/02/2021 - 10:41h

Como faço, em C, um código que compare se as respostas da linha de uma matriz são iguais a linha de um vetor?

Em anexo imagem da pergunta.

Segue código que tenho:
#include <stdio.h>
int main() { char ma[5][10] = {'a','b','c','d','d','c','b','a','b','b','d','a','d','c','b','a','b','b','d','a', 'd','d','c','b','a','b','b','d','a','d','b','d','a','d','c','b','a','b','b','d','c','d','d','c', 'b','a','b','b','d','a'}, letter; char gab[10] = {'a','b','c','d','a','b','c','d','b','b'}; int resultado[10], r, l, soma = 0;

//Corrigindo
for(r = 0; r < 5; r++){
for(l = 0; l < 10; l++){
if(ma[r][l] == gab[l]){
soma++;
}
resultado[r] = soma;
}
}

printf("Resultados\n\n");
for(r = 0; r < 5; r++){
printf("Aluno %d: %d\n", r+1, resultado[r]);
}

return 0;
}




  


2. Re: Comparar Matriz e vetor de char [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 02/02/2021 - 13:06h

SrKon escreveu:

Como faço, em C, um código que compare se as respostas da linha de uma matriz são iguais a linha de um vetor?

Em anexo imagem da pergunta.

Segue código que tenho:
#include <stdio.h>
int main() { char ma[5][10] = {'a','b','c','d','d','c','b','a','b','b','d','a','d','c','b','a','b','b','d','a', 'd','d','c','b','a','b','b','d','a','d','b','d','a','d','c','b','a','b','b','d','c','d','d','c', 'b','a','b','b','d','a'}, letter; char gab[10] = {'a','b','c','d','a','b','c','d','b','b'}; int resultado[10], r, l, soma = 0;

//Corrigindo
for(r = 0; r < 5; r++){
for(l = 0; l < 10; l++){
if(ma[r][l] == gab[l]){
soma++;
}
resultado[r] = soma;
}
}

printf("Resultados\n\n");
for(r = 0; r < 5; r++){
printf("Aluno %d: %d\n", r+1, resultado[r]);
}

return 0;
}



char ma[5][10] = {{'a','b','c','d','d','c','b','a','b','b'},
{'d','a','d','c','b','a','b','b','d','a'},
{'d','d','c','b','a','b','b','d','a','d'},
{'b','d','a','d','c','b','a','b','b','d'},
{'c','d','d','c', 'b','a','b','b','d','a'}}


3. Re: Comparar Matriz e vetor de char [RESOLVIDO]

Rafael L.
SrKon

(usa Manjaro Linux)

Enviado em 02/02/2021 - 13:38h

leandropscardua escreveu:

SrKon escreveu:

Como faço, em C, um código que compare se as respostas da linha de uma matriz são iguais a linha de um vetor?

Em anexo imagem da pergunta.

Segue código que tenho:
#include <stdio.h>
int main() { char ma[5][10] = {'a','b','c','d','d','c','b','a','b','b','d','a','d','c','b','a','b','b','d','a', 'd','d','c','b','a','b','b','d','a','d','b','d','a','d','c','b','a','b','b','d','c','d','d','c', 'b','a','b','b','d','a'}, letter; char gab[10] = {'a','b','c','d','a','b','c','d','b','b'}; int resultado[10], r, l, soma = 0;

//Corrigindo
for(r = 0; r < 5; r++){
for(l = 0; l < 10; l++){
if(ma[r][l] == gab[l]){
soma++;
}
resultado[r] = soma;
}
}

printf("Resultados\n\n");
for(r = 0; r < 5; r++){
printf("Aluno %d: %d\n", r+1, resultado[r]);
}

return 0;
}



char ma[5][10] = {{'a','b','c','d','d','c','b','a','b','b'},
{'d','a','d','c','b','a','b','b','d','a'},
{'d','d','c','b','a','b','b','d','a','d'},
{'b','d','a','d','c','b','a','b','b','d'},
{'c','d','d','c', 'b','a','b','b','d','a'}}


Isso não funciona. Descobri que o erro esta no IF. Os valores dentro dele não são compatíveis nem com os valores da matriz nem com os do vetor. É como se fossem outra a matriz e vetor dentro do IF.



4. Resolvido

Rafael L.
SrKon

(usa Manjaro Linux)

Enviado em 02/02/2021 - 14:58h

Solução encontrada:
#include <stdio.h>
int main()
{
const char nota[][10] =
{
{ 'a','b','c','d','d','c','b','a','b','b' },
{ 'd','a','d','c','b','a','b','b','d','a' },
{ 'd','d','c','b','a','b','b','d','a','d' },
{ 'b','d','a','d','c','b','a','b','b','d' },
{ 'c','d','d','c','b','a','b','b','d','a' }
};

const char gabarito[] = { 'a','b','c','d','a','b','c','d','b','b' };

int resultado[10] = {0};
int soma = 0;

//Corrigindo
for(int r = 0; r < 5; r++)
{
soma = 0;
for(int l = 0; l < 10; l++)
{
if(nota[r][l] == gabarito[l])
{
soma++;
}
}
resultado[r] = soma;
}

printf("Resultados\n\n");
for(int res = 0; res < 5; res++){
printf("Aluno %d: %d\n", res+1, resultado[res]);
}
return 0;

}