Давайте рассмотрим следующий фрагмент кода на C:
#include <stdio.h>
#define SCORES 3
typedef struct struct_student{
char name[16];
float scores[SCORES];
float average;
} STUDENT;
int main(){
STUDENT student, *p;
int i;
p = &student;
printf("Name:\n");
gets((*p).name);
for(i=0;i<SCORES;i++){
printf("score:\n");
scanf("%f", &(*p).scores[i] );
(*p).average = (*p).average + (*p).scores[i];
}
(*p).average = (*p).average/SCORES ;
printf("%s has average %f\n",student.name, student.average);
return 0;
}
Работает хорошо. Но я думаю, что есть другой способ указать scanf:
scanf("%f", &(*p).scores[i] );
Я имею в виду. Это кажется слишком сложным. Я хотел бы знать, есть ли другой способ сделать это с помощью «точечной нотации». То есть я знаю, что есть «обозначение стрелки», которое намного проще. Но я думаю, что даже при использовании «точечной нотации» есть лучший способ сделать это. Обратите внимание, что я пытаюсь понять, как использовать «точечную нотацию», поэтому меня не интересуют решения с «стрелочной нотацией».