処理できない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
palumu

処理できない

#1

投稿記事 by palumu » 10年前

コード:

 
#include<stdio.h>
#define MAX 3
#define LENGTH 80
/*プロトタイプ宣言*/
struct seiseki scoreread(struct seiseki);
double calcaverage(struct seiseki person);
void showaverage(struct seiseki);

/*構造体の定義*/
struct seiseki{
   char name[LENGTH];
   int jpn;
   int eng;
   int math;
   double average;
};

int main(void){
	struct seiseki i14[MAX];
	int i;
	
	/*成績の入力*/
    for(i=0;i<MAX;i++){
	i14[i]=scoreread(i14[i]);
    }
	/*各学生の平均点を計算して構造体に入れる。*/
    for(i=0;i<MAX;i++){
	i14[i]=calcaverage(i14[i]);
    }
	/*学年名前と平均点を出力*/
	for(i=0;i<MAX;i++){
	     showaverage(i14[i]);
    }
	return(0);
}
struct seiseki scoreread(struct seiseki person){
	printf("名前の入力:");
	scanf("%s",&person.name);
	printf("%sの国語の成績:",person.name);
	scanf("%d",&person.jpn);
	printf("%sの英語の成績:",person.name);
	scanf("%d",&person.eng);
    printf("%sの数学の成績:",person.name);
	scanf("%d",&person.math);
	return(person);
}

double calcaverage(struct seiseki person){
		(double)person.average=(double)(person.jpn+person.eng+person.math)/3;
	return(person);
	}

void showaverage(struct seiseki person){
   	printf("%s君の平均点は%d\nです。",person.name,person.average);
	printf("%s君の平均点は%d\nです。",person.name,person.average);
	printf("%s君の平均点は%d\nです。",person.name,person.average);
} 
このようにしてコンパイルすると
『エラー E2034 kadai2-7.cpp 29: 'double' 型は 'seiseki' 型に変換できない(関数 main() )』
『エラー E2034 kadai2-7.cpp 51: 'seiseki' 型は 'double' 型に変換できない(関数 calcaverage(seiseki) )』
という風にエラーが出てうまく処理できません。
どうすればいいでしょうか?

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 処理できない

#2

投稿記事 by みけCAT » 10年前

適切に修正すればいいと思います。

コード:

 
#include<stdio.h>
#define MAX 3
#define LENGTH 80
/*プロトタイプ宣言*/
struct seiseki scoreread(struct seiseki);
struct seiseki calcaverage(struct seiseki person); /* doubleをstruct seisekiに変更 */
void showaverage(struct seiseki);

/*構造体の定義*/
struct seiseki{
   char name[LENGTH];
   int jpn;
   int eng;
   int math;
   double average;
};

int main(void){
	struct seiseki i14[MAX];
	int i;
	
	/*成績の入力*/
    for(i=0;i<MAX;i++){
	i14[i]=scoreread(i14[i]);
    }
	/*各学生の平均点を計算して構造体に入れる。*/
    for(i=0;i<MAX;i++){
	i14[i]=calcaverage(i14[i]);
    }
	/*学年名前と平均点を出力*/
	for(i=0;i<MAX;i++){
	     showaverage(i14[i]);
    }
	return(0);
}
struct seiseki scoreread(struct seiseki person){
	printf("名前の入力:");
	scanf("%s",person.name); /* &を削除 */
	printf("%sの国語の成績:",person.name);
	scanf("%d",&person.jpn);
	printf("%sの英語の成績:",person.name);
	scanf("%d",&person.eng);
    printf("%sの数学の成績:",person.name);
	scanf("%d",&person.math);
	return(person);
}

struct seiseki calcaverage(struct seiseki person){ /* doubleをstruct seisekiに変更 */
		person.average=(double)(person.jpn+person.eng+person.math)/3; /* (double)を削除 */
	return(person);
	}

void showaverage(struct seiseki person){
   	printf("%s君の平均点は%f\nです。",person.name,person.average); /* %dを%fに変更 */
	printf("%s君の平均点は%f\nです。",person.name,person.average); /* %dを%fに変更 */
	printf("%s君の平均点は%f\nです。",person.name,person.average); /* %dを%fに変更 */
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

出来ました!

Re: 処理できない

#3

投稿記事 by 出来ました! » 10年前

コンパイルすることが出来ました。
ありがとうございます


閉鎖

“C言語何でも質問掲示板” へ戻る