C言語 プログラムの質問
下記の問題はすでに他で回答されていますが、私のプログラムのどこがいけないかチェックしていただけませんか?
1)101人以下のクラスがあり、学生には1から通し番号が付いているものとする。 このクラスのある科目の得点を通し番号順にキーボードから受けとり、負の得点が入力されたら全員の入力が終わったものとする。 その後、キーボードから入力された番号の人の得点をxx点と漢字で表示し、存在しない番号が入力されたらプログラムを終了する。
2)第 1 種の定形外通常郵便物の料金は、次の表のように定められている。 郵便物の重さを g 単位で入力すると、料金が出力されるプログラムを作成しなさい。 ただし、以下の点を考慮すること。
*重さと料金の表は、2 次元配列として取り扱うこと
*指定された範囲外の値(負の値,0,4001以上)が入力された場合は、正しい値が入力されるまで入力処理を繰り返すこと
重さ 料金
50gまで 120円
100gまで 140円
150gまで 200円
250gまで 240円
500gまで 390円
1000gまで 580円
2000gまで 850円
4000gまで 1150円
-----------------------------------------
自分のプログラム
1)
#include <stdio.h>
int main(void) {
int Snumber[101],score[101],i,n;
for(i=0;i<101;i++){
scanf("%d",&score[i]);
if(score[i]<0){
break;
}
}
for(n=0;n<i;n++){
if(score[i-1]==''){
break;
}
printf("学生番号:%d\n %d\n",Snumber[i],score[i-1]);
}
}
-----------------------------------------------
2)
#include <stdio.h>
int main(void) {
int weight,i;
int array[8][2] = { {50,120},
{100,140},
{150,200},
{250,240},
{500,390},
{1000,580},
{2000,850},
{4000,1150},
};
scanf("%d",&weight);
for(i=0;i<8;i++){
if(weight<=0){
break;
}else if(weight>= 4001){
break;
}else if(weight <= array[i][0]){
printf( "料金 : %d円\n", array[ i ][ 1 ] );
}
}
}