このコードを書いて、10個の数字の配列で数値の最高の繰り返しを数えて印刷します。問題はこのプログラムはcounter++
ではないのですが、番号は配列の最後の番号と同じです。数字の配列中の数字の最高の反復を数えるためのCプログラム
がここにコードされています
#include <stdio.h>
#define SIZE 9
int main() {
float Student[SIZE],grade,maxValue;
int i,j,k,slot,counter=0,maxCount=-1;
printf("Enter the grade of 10 students \n");
for(i=0;i<=SIZE;i++){
printf("Enter student %d grade : ",i+1);
scanf("%f",&Student[i]);
}
for(j=0;j<=SIZE;j++){
grade = Student[j];
counter = 0;
for(k=0;k<=SIZE;k++){
if(k == j){
continue;
}
if (grade == Student[k]){
counter++;
}
if (counter > maxCount) {
maxCount = counter;
maxValue = grade;
}
}
}
if(maxCount == 0){
printf("There are no duplicate numbers.\n");
}else{
printf("%.2f repeated %d times.\n",maxValue,maxCount);
}
return 0;
}
未定義の動作: 'for(i = 0; i <= SIZE; i ++){'は配列の範囲外になります。 - > 'i
Unimportant
おそらく、デバッガを使うことを学ぶのが助けになるでしょう。 –
@重要ではないSIZEは9です。配列のサイズはちょうど9です。数字が最後の数字に等しい場合はカウントされません。 –