Ir ao conteúdo

Posts recomendados

Postado

Ola, pessoal estou com um problema para converter um algoritmo em portugol para linguagem c. Estou enviando o código do visualg e o código do que já fiz em C

 

A parte que pega a maior nota esta funcionando bem mas quando tento atribuir a variável  melhorAluno = nome, o compilador da essa mensagem de erro. "error: assignment to expression with array type". Acho que eu teria que criar um vetor pra usar strings mas nao estou entendendo como fazer.

 

Eu tentei colocar o melhorAluno = nome  / nome = melhorAluno na parte dos IFs mas da esse erro, pelo visto nao é estão simples assim no c hehe.

 

algoritmo "detectaCDF"
var
   tot, cont: Inteiro
   nome, melhorAluno: Caractere
   nota, maiorNota: Real
inicio
      Escreval("------------------------")
      Escreval(" Escola Santa Paciencia ")
      Escreval("------------------------")
      Escreva("Quantos alunos a turma tem? ")
      Leia(tot)
      cont <- 1
      Enquanto (cont <= tot) faca
         Escreval("---------------")
         Escreval("ALUNO ", cont)
         Escreva("Nome do aluno: ")
         Leia(nome)
         Escreva("Nota de ", nome, ": ")
         Leia(nota)
         Se (nota > maiornota) então
            maiorNota <- nota
            melhorAluno <- nome
         FimSe
         cont <- cont + 1
      FimEnquanto
      Escreval("-------------------")
      Escreval("O melhor aproveitamento foi de ", melhorAluno, " com a nota ", maiorNota:3:1)
fimalgoritmo

 

#include<stdio.h>

int main()
{
    int tot, cont, i;
    char nome[20], melhorAluno[20];
    float nota, maiorNota;

    printf("------------------------\n");
    printf(" Escola Santa Paciencia \n");
    printf("------------------------\n");
    printf("Quantos alunos a turma tem?");
    scanf("%i", &tot);

    cont = 1;

    while(cont <= tot)
    {
        printf("\n---------------\n");
        printf("\nALUNO %i\n", cont);

        printf("Nome do aluno: ");
        scanf("%s", nome);

        printf("\nNota de %s: ", nome);
        scanf("%f", &nota);

        if(nota > maiorNota)
        {
            maiorNota = nota;
            strcpy(melhorAluno, nome);
        }

        if(maiorNota > nota)
        {
            nota = maiorNota;
            strcpy(nome, melhorAluno);
        }

        cont = cont + 1;
    }
    printf("\n-------------------");
    printf("\nO melhor aproveitamento foi de %s com a nota %.2f", melhorAluno, nota);
}

 

Visitante
Este tópico está impedido de receber novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!