私のコードstruct Stdinfo
に構造体を宣言しました。構造体には学生の名前とスコアが含まれています。構造体配列以外の要素へのアクセス
#include <stdio.h>
struct Stdinfo{
char name[30];
int score;
};
次に、struct Stdinfo CreatStruct()
という名前の関数の内部にこの構造を作成しました。また、私の構造変数が配列であることに言及する必要があります。構造が作られた後、私はそのアドレスをポインタstruct Stdinfo *structPtr
に保存しました。マイ目標が最大のスコアを印刷するのであるが、私はそれへのアクセスを取得する方法がわからない
#include <stdio.h>
#include <string.h>
struct Stdinfo{
char name[30];
int score;
};
struct Stdinfo CreatStruct();
void FindAverage(struct Stdinfo * ,size_t);
int main(void)
{
//Number of students ~stdnum
size_t stdnum;
int i;
puts("Input numbers of student(s) :") ;
scanf("%Iu" ,&stdnum);
struct Stdinfo student[stdnum] ;
//Filling array of structure
for(i=0 ; i < stdnum ; i++)
{
student[i] = CreatStruct() ;
}
struct Stdinfo *structPtr;
structPtr= student;
FindAverage(structPtr ,stdnum);
return 0;
}
struct Stdinfo CreatStruct() {
struct Stdinfo student;
getchar(); // Consume newline from previous input
printf("Input the name of the student : ") ;
fgets(student.name , sizeof (student.name) , stdin);
// remove trailing newline from 'fgets()'
student.name[strcspn(student.name, "\n")] = 0;
puts("Input his(her) score:") ;
scanf("%i" ,&student.score) ;
return student ;
}
void FindAverage(struct Stdinfo *structPtr ,size_t stdnum){
int j;
for(j = 1 ; j < stdnum ; j++)
{
if((structPtr[j] -> score) < (structPtr[j] -> score)) { //Error line
/*...
*
* ?
*
*/
}
}
////printf(The answer);
}
:
void FindAverage(struct Stdinfo *structPtr ,size_t stdnum){
int j;
for(j = 1 ; j < stdnum ; j++)
{
//Error line
if((structPtr[j] -> score) < (structPtr[j] -> score)) {
/*...
*
* ?
*
*/
}
}
////printf(The answer);
}
私の全体のコードを:それから私は、以下の関数にアドレスを渡します。
この問題の解決に役立つ人がいれば幸いです。
「エラーライン」にはどのエラーがありますか? – MondKin
不必要なスペースや括弧を削除した 'if(structPtr [j] - > score score)'の理由を理解できません。 –
@ MondKin- if((structPtr [j] - > score)<(structPtr [j] - > score)) –