Цель здесь - напечатать оценку (A, R или F) на основе средней ноты и одно значение для присутствия, а другое - для средней ноты, используя указатели для среднего и присутствия. Но после компиляции печатается только возвращаемое значение символа, остальные - 0.
Я пытался напечатать сохраненные значения по указателю присутствия * avg и *, но программа принимает значения оценки и присутствия. значения до сбоя.
#include <stdio.h>
char situation(float n1,float n2,float n3,int misses, int classes, float
*avg, float *presence);
int main()
{
float *avg,*presence,vet[3];
int f,a,x;
printf("Write the value of your notes \n");
for(x=0;x<=2;x++)
{
printf("Note %d:",x+1);
scanf("%f",&vet[x]);
}
printf("Misses: ");
scanf("%d",&f);
printf("Given: ");
scanf("%d",&a);
char outcome=situation(vet[0],vet[1],vet[2],f,a,&avg,&presence);
printf("With an average of %f and presence of %f percent, your situation is %c",avg,presence,outcome);
return 0;
}
char situation(float n1,float n2,float n3,int misses, int classes, float
*avg, float *presence)
{
char result;
*presence=((classes-misses)/classes)*100;
*avg=(n1+n2+n3)/3;
if(*presence>=0 && *presence<75)
{
result='F';
}
if(*presence>=75 && *presence <=100)
{
if(*avg>=0 && *avg<6);
{
result='R';
}
if(*avg>=6 && *avg<=10)
{
result='A';
}
if(*avg<0 || *avg>10)
{
result='x';
}
}
if(*presence<0 || *presence>100)
{
result='x';
}
return result;
}
Я ожидаю, что присутствие, среднее значение и результат будут напечатаны на экране пользователю, но это только даст значение результата char