Jump to content
SM

Como saber quantas linhas estao a ser recebidas no input?

Recommended Posts

SM

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 ?

Share this post


Link to post
Share on other sites
apocsantos

    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"

Share this post


Link to post
Share on other sites
KTachyon

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

Share this post


Link to post
Share on other sites
SM

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;
}

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.