Ir ao conteúdo

Posts recomendados

Postado

 

Escreva um programa em linguagem C que solicita ao usuário a quantidade de alunos de uma turma e aloca um vetor de notas (números inteiros). Depois de ler as notas, mostre na tela todas as notas separadas por um espaço. Em seguida pergunte a quantidade de alunos que entraram de 2ª chamada e realoque o vetor para acomodar os antigos e novos alunos. Leia as notas dos novatos e mostre na tela todas as notas separadas por um espaço (com as notas dos novatos).

 

O que há de errado com o meu código?

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x, *p;
    printf("Quantidade de alunos na turma: ");
    scanf("%d", &x);
    p=(int *) malloc(x*sizeof(int));
    if(p==NULL){
        printf("Sem memoria");
        exit(1);
    }
    int i;
    for(i=0;i<5;i++){
        printf("Digite a nota do aluno %d: ", i+1);
        scanf("%d", &p);
    }
    for(i=0;i<5;i++){
        printf("%d\t", p);
    }
    int y;
    printf("\nQuantos alunos entraram em 2a chamada?: ");
    scanf("%d", &y);
    p=(int *) realloc(p,(x+y)*sizeof(int));
    if(p==NULL){
        printf("Sem memoria");
        exit(1);
    }
    int j;
    for(j=0;j<y;j++){
        printf("Digite a nota do novato %d: ", j+1);
        scanf("%d", &p);
    }
     for(i=0;i<(x+y);i++){
        printf("%d\t", p);
    }
    return 0;
}

Postado

@Filipe de Luca      você precisa informar em qual posição de p será guardado o valor digitado e na hora de imprimir  também precisa dessa informação.     Talvez você tenha colocado essa informação no seu código, mas como na hora de você postar você não usou o botão  <>  que está na barra de ferramentas da janela de postar, seu código ficou sem essa informação .
   no loop para a entrada de dados dos alunos da segunda chamada precisa começar de onde parou no primeiro loop e ir até o total de onde parou no primeiro loop mais a quantidade de alunos da segunda  chamada .
o resto do código está certo .
veja como ficaria seu código com algumas modificações :

#include <stdio.h>
#include <stdlib.h>
int main(){
    int x, *p;
    printf("Quantidade de alunos na turma: ");
    scanf("%d", &x);
    p=(int *) malloc(x*sizeof(int));
    if(p==NULL){
        printf("Sem memoria");
        exit(1);
    }
    int i;
    for(i=0;i<x;i++){
        printf("Digite a nota do aluno %d: ", i+1);
        scanf("%d", &p[i]);
    }
    printf("Aqui AS Notas Dos Alunos\n");
    for(i=0;i<x;i++){
        printf("%d\t", p[i]);
    }
    printf("\n");
    int y;
    printf("\nQuantos alunos entraram em 2a chamada?: ");
    scanf("%d", &y);
    p=(int *) realloc(p,(x+y)*sizeof(int));
    if(p==NULL){
        printf("Sem memoria");
        exit(1);
    }
    int j;
    for(j=x;j<(x+y);j++){
        printf("Digite a nota do novato %d: ", j-x+1);
        scanf("%d", &p[j]);
    }
    printf("Aqui esta As Notas Dos Alunos De Segunda Chamada\n");
    for(i=x;i<(x+y);i++){
        printf("%d\t", p[i]);
    }
    printf("\n");
    return 0;
}

 

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!