[dúvida] Programação em C

Razorlight

Power Member
Boas, estou a fazer um trabalho em C para final de semestre e estou com umas dúvidas numa parte do código porque ao compilar dá um erro e não sei porque não correr.

A função em questão é na void main:

Código:
void main(){
	int RV=1;
	pessoa DADOS[C+1];
	int n = 0;
	


	while(RV==1)
	{
		RV = menu(DADOS, &n);
	}
}

e dá este erro:
Código:
'RV' : undeclared identifier


Não percebo porquê, se RV está declarado...

A quem puder ajudar, os meus cumprimentos.
 
Onde está declarada a variável C? É global?

O método main deveria devolver int em vez de void.

O C pode ser um número qualquer.
O inicio é isto:
Código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>




#define MAX 100
#define C 200




typedef struct Data {
    int ano;
    int mes;
    int dia;
} Data;


typedef struct pessoa { 
    char nome_completo [MAX];
    long int BI;
    Data data_nasc;
    short int idade;
    float LDL, HDL, colestrol_total, trigli;
    char sexo;
} pessoa;



(...)


void main()
{   
int RV=1;   
pessoa DADOS[C+1];    
int n = 0;        
while(RV==1)    
   {        
     RV = menu(DADOS, &n);    
   }
}


Ve se não é um erro de sintaxe na estrutura "pessoa"

Não me parece que seja...

De qualquer das formas mudei e fiz assim:

Código:
int main()
{
	int n = 0;
	pessoa DADOS[1500];
	int RV=1;
	while(RV==1)
	{
		RV = menu(DADOS, &n);
	}
	return RV;
}

E dá erro na mesma.
 
Última edição:
Isso não diz em que linha dá o erro? Pode não ser o RV que estejas a pensar, já agora o "RV = menu(DADOS, &n);" deverá por o que no RV?
 
Estranho copiei o código que colocaste e compila sem problemas no Dev C++/mingw (exceptuando a função menu, que não conheço e substituí por uma constante). Será que a função menu está bem construída?
 
Isso não diz em que linha dá o erro? Pode não ser o RV que estejas a pensar, já agora o "RV = menu(DADOS, &n);" deverá por o que no RV?

O erro dá dentro da main, em todos os RV.
O RV tem um valor definido (1), e ao retornar o valor 1, vai buscar uma opção ao menu.

Eu vou tentar dar mais uma vista de olhos, porque já tenho muitas linhas de código e pode ser que esteja lá alguma coisa escondida
 
Já está a correr, tinha uma letra a mais numa função.
Mas vou aproveitar o tópico caso tenha mais dúvidas.

Obrigada aos que ajudaram!
 
Alguem me pode ajudar neste programa em linguagem C sff.

1. Dado um array com as temperaturas médias de cada dia do mês de Agosto (pré-atribuídas) elabore um programa que:

a. Indique em que dia esteve a temperatura mais alta e respectivo valor
b. Indique em que dia esteve a temperatura mais baixa e respectivo valor
c. Indique a média do mês de Agosto
d. Apresente as temperaturas, dia-a-dia, com o formato do exemplo seguinte

Dia 1 – 33.3º - máxima
Dia 2 – 30.1º - acima da média
Dia 3 – 27.7º - abaixo da média
Dia 4 – 25.5º - mínima
Dia 5 – 29.9º - acima da média


e. A informação deve ser guardada em ficheiro chamado agosto.txt.

Agradecia ajuda sff tou em Engenharia das Energias Renováveis e não percebo grande coisa disto xD
 
Vou por aqui o meu código em java gostava de saber como passar para linguagem C ;)

"

public class Exercicio4 {


/**
* @param args
*/
public static void main(String[] args) {


double temperaturas [] = {19.5,20.5,16,17,18,37,42,43,42.5,15,27,26,25.5,41,15.5,28,29.5,14.5,42,
40.5,40.5,41,42,43,52,35,37,36.5,31.5,39,38.6};
double max = temperaturas [0], min = temperaturas [0], soma = 0;




for(int i = 0; i < temperaturas.length; i++){


if (max < temperaturas){
max = temperaturas;


}
if (min > temperaturas){
min = temperaturas;
}


soma+=temperaturas;


}


double media= soma/temperaturas.length;


System.out.println("O dia mais quente de Agosto foi de " + max + "Graus");
System.out.println("O dia menos quente de Agosto foi de " + min + "Graus");
System.out.println("A media da temperatura do mes de Agosto foi de " + media + "Graus" );


for (int i =0; i < temperaturas.length; i++){


System.out.print("Dia" + (i+1) + " - " + temperaturas + " - ");


if (temperaturas == max){
System.out.println("Maxima");
}
else if (temperaturas == min){
System.out.println("Minimo");
}
else if (temperaturas > media){


System.out.println("acima da media");
}
else if (temperaturas < media){


System.out.println("abaixo da media");


}
}
}


}

Agradecia a ajuda :p
 
#include <stdio.h>

#define TEMPCOUNT 31

int main() {

double temperaturas [TEMPCOUNT] = {19.5,20.5,16,17,18,37,42,43,42.5,15,27,26,25.5,41 ,15.5,28,29.5,14.5,42, 40.5,40.5,41,42,43,52,35,37,36.5,31.5,39,38.6};
double max = temperaturas [0];
double min = temperaturas [0];
double soma = 0;
double media = 0;
int i = 0;

for(i = 0; i < TEMPCOUNT; i++){
if (max < temperaturas){
max = temperaturas;
}
if (min > temperaturas){
min = temperaturas;
}
soma += temperaturas;
}

media= soma/TEMPCOUNT;

printf("O dia mais quente de Agosto foi de %02.01f Graus\n", max);
printf("O dia menos quente de Agosto foi de %02.01f Graus\n", min);
printf("A media da temperatura do mes de Agosto foi de %02.01f Graus\n", media);


for (i = 0; i < TEMPCOUNT ; i++){
printf("Dia %d - ", i + 1);
if (temperaturas == max){
printf("Maxima\n");
} else if (temperaturas == min){
printf("Minimo\n");
} else if (temperaturas > media){
printf("%02.01f acima da media\n", temperaturas - media);
} else if (temperaturas < media){
printf("%02.01f abaixo da media\n", media - temperaturas );
}
}

return 0;
}


Não sei se era este o output. Assim grosseiramente convertido, será isto.
 
agora é que reparei que era para por o valor absoluto e nao o delta sobre a média na representacao final. mas isso tambem se altera rapidamente...
 
Então deixa ver se percebo, não sabes mudar 1 coisa simples em C mas sabes programar tudo em Java?

Se eu fosse o dropko começava era a cobrar por te estar a fazer o problema.
 
eu não sei simplesmente tenho amigos meus em engenharia informatica que me ajudaram em java mas eles não percebem nada de C desculpa la eu vir aqui pedir ajuda -.-. Simplesmente o dropko foi bue porreiro por me ter ajudado :D
 
Back
Topo