Sim através de matrizes (arrays de duas dimensões).
void percent_eateros (pessoa registo[], int tam){
float iColestrol_total=190, iLDL=115, iHDLm=40, iHDLf=50, itrigli=150, percentagem;
int total=0, i;
for(i=0;i<tam;i++){
if(registo[i].Colestrol_total>=iColestrol_total)
if(registo[i].LDL>=iLDL)
[COLOR=#ff0000][B]switch(registo[i].Sexo)[/B][/COLOR]{
case 'm': if(registo[i].HDL<=iHDLm)
if(registo[i].Trigli>=itrigli)
total++;
break;
case 'f': if(registo[i].HDL<=iHDLf)
if(registo[i].Trigli>=itrigli)
total++;
break;
}
}
percentagem=percent(total, tam);
printf("A percentagem de paciente com alto risco ateroscleose: %f", percentagem);
}
a resposta diz tudo. usa inteiros para switch.
se so tens 2 casos, usa um simples if/else, keep it simple.
se quiseres manter o switch, cria um define para
#define MASCULINO 1
#define FEMININO 2
e poe os defines no switch.
void percent_normal (pessoa registo[], int tam){
float iColestrol_total=190, iLDL=115, iHDLm=40, iHDLf=50, itrigli=150, percentagem;
int i, total=0;
for(i=0;i<tam;i++)
if(registo[i].Colestrol_total<iColestrol_total)
if(registo[i].LDL<iLDL)
if(registo[i].Sexo = 'm' ){
if(registo[i].HDL>iHDLm)
if(registo[i].Trigli<itrigli)
total++;
}
else(registo[i].Sexo = 'f' ){
if(registo[i].HDL<=iHDLf)
if(registo[i].Trigli>=itrigli)
total++;
}
percentagem=percent(total,tam);
printf("Percentagem de pessoas com valores normais: %f ", percentagem);
}
é com '==' e não com '=' na comparação.
if(registo.Sexo == 'm' )
ps: se n gostas dos defines, podes usar enumerado, sempre fica com um ar mais elegante
#include <stdio.h>
#include <stdlib.h>
int paridade (int num);
main (){
int num, resultado;
int count;
count=0;
do{
printf("insira um valor:");
scanf("%d", &num);
}while(num!=0);
resultado=paridade(num);
if(resultado==1){
count++;
}
else{
printf("o numero e impar");
}
printf("A quantidade de valores pares sao %d", count);
system("pause");
}
int paridade(int num){
if (num % 2 == 0){
return 1;
}
else{
return 0;
}
}
#include <stdio.h>
#include <stdlib.h>
int paridade (int num);
main (){
int num, resultado;
int count;
count=0;
do{
printf("insira um valor:");
scanf("%d", &num);
resultado=paridade(num);
if(paridade(num) == 1){
count++;
}
}while(num!=0);
printf("A quantidade de valores pares sao %d", count);
system("pause");
}
int paridade(int num){
if (num % 2 == 0){
return 1;
}
else{
return 0;
}
}
#include <stdio.h>
#include <stdlib.h>
int maior_digito(int num);
main(){
int resultado, num;
printf("insira um numero;");
scanf("%d", &num);
resultado=maior_digito(num);
printf("o maior digito e: %d", resultado);
system("pause");
}
int maior_digito(int num){
int maior;
int digito;
maior=0;
while (num!=0){
num=(int)num/10;
digito=num%10;
if(maior<digito){
maior=digito;
}
else{
digito=maior;
}
return maior;
}
}