関数
Posted: 2010年9月29日(水) 13:35
「20人のクラスで試験を行いました。試験の受験番号と点数(0~100の整数)を入力して平均値を出すプログラムを作ってください。また、受験番号を入力すると点数が表示されるようにもしてください。受験番号は1番から順に20番間までとします」
という問題で自分なり考えてソースを書いてコンパイルして実行してみると平均点が正常に表示されず、受験番号を入力するとセグメントエラーが出ます。どうすればよいでしょうか?
自分が書いたソース
#include<stdio.h>
# define BUFFER_SIZE (256)
int get_int(void)
{
char buf[BUFFER_SIZE];
fgets(buf, BUFFER_SIZE, stdin);
return atoi(buf);
}
int main(void){
int i,sum,a[20],b;
for(i=0 ; i < 20 ; i++){
printf("点数は? ");
a = get_int();
sum += a;
}
printf("平均点は%dです",sum/20);
while(1){
printf("受験番号を入力してください");
b=get_int();
if(b==0)
break;
printf("%d番は%s点です",b,a[b-1]);
}
return 0;
}
という問題で自分なり考えてソースを書いてコンパイルして実行してみると平均点が正常に表示されず、受験番号を入力するとセグメントエラーが出ます。どうすればよいでしょうか?
自分が書いたソース
#include<stdio.h>
# define BUFFER_SIZE (256)
int get_int(void)
{
char buf[BUFFER_SIZE];
fgets(buf, BUFFER_SIZE, stdin);
return atoi(buf);
}
int main(void){
int i,sum,a[20],b;
for(i=0 ; i < 20 ; i++){
printf("点数は? ");
a = get_int();
sum += a;
}
printf("平均点は%dです",sum/20);
while(1){
printf("受験番号を入力してください");
b=get_int();
if(b==0)
break;
printf("%d番は%s点です",b,a[b-1]);
}
return 0;
}