SM 0 Posted December 4, 2011 Report Share Posted December 4, 2011 Queria resolver o seguinte exercicio em C: "Considere que se pretende ler do standard input a informação de um conjunto de inscrições de alunos a disciplinas e respectivas notas. Escreva em linguagem C a função Inscricao* lerInscricoes(int n) que lê um sequência de n inscrições do standard input e devolve um novo vector de inscrições de alunos em disciplinas. " E nao sei como descobrir o n. O n poderia ser pedido ao utilizador, mas caso nao seja, queria fazer algo como, enquanto houver coisas para ler no input, soma mais 1 ao n. Como faço isso ? Link to post Share on other sites
apocsantos 206 Posted December 4, 2011 Report Share Posted December 4, 2011 Boa noite, Já tens código feito? Quais as tuas duvidas em concreto ? N é o numero de alunos. É uma variavel do tipo inteiro. Segundo percebi pode ser lido o valor de n do teclado antes de ser executada a função, onde será pedido o o nome da disciplina e a respectiva nota para cada aluno. Quando a função terminar devolve o vector preenchido. Quando tiveres duvidas mais concretas diz, pois ninguém aqui te vai fazer o trabalho todo. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to post Share on other sites
KTachyon 276 Posted December 4, 2011 Report Share Posted December 4, 2011 Se o exercício te pede que implementes essa função, deves ter que ler o valor 'n' e depois ler as 'n' inscrições na função. Não faz muito sentido chamares uma função em que queres ler 'n' inscrições e leres mais que as pedidas. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare Link to post Share on other sites
SM 0 Posted December 4, 2011 Author Report Share Posted December 4, 2011 Obrigado aos 2. Ja fiz o codigo partindo do principio entao que lia tambem o n do input, so que surgiu-me nova duvida. Para verificar que o programa estava a fazer o pretendido pus lá uns printf, e ele faz print de um null e de umas coisas que nao é o pretendido. Alguem me pode dizer onde esta o erro no codigo sff? #include <stdio.h> #include <stdlib.h> typedef struct { int num_aluno; char* cod_disc; int nota; } Inscricao; Inscricao* lerInscricoes(int n){ int i; Inscricao *vectorinscricoes; vectorinscricoes = (Inscricao*) malloc (sizeof(Inscricao) * n); for (i=0; i<n; i++){ scanf("%d", &(vectorinscricoes[i].num_aluno)); scanf("%s", (vectorinscricoes[i].cod_disc)); scanf("%d", &(vectorinscricoes[i].nota)); } for (i=0; i<n; i++){ printf("%d", (vectorinscricoes[i].num_aluno)); printf("%s", (vectorinscricoes[i].cod_disc)); printf("%d", (vectorinscricoes[i].nota)); } return vectorinscricoes; } int main(){ int n; scanf("%d", &n); lerInscricoes(n); return 0; } Link to post Share on other sites
SM 0 Posted December 4, 2011 Author Report Share Posted December 4, 2011 Já está resolvido Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now