// 課題04 等差数列 /* //Cプログラム #include #define DATA_LIM 8 int main(void) { double data[DATA_LIM] = { 1.0, 3.0, 5.0, 7.0, 9.0, 11.5, 13.0, 15.0} ; int flag = 1; // 等差数列であれば 1 にする.そうでなければ 0 にする. int i; for (i = 0; i < (DATA_LIM - 2); i++){ if ((data[i+1] - data[i]) != (data[i+2] - data[i+1])){ flag = 0; break; } } if (flag) { printf("OK\n") ; } else { printf("NG\n") ; } return 0 ; } //実行例 # ./exer04 NG */ public class Exer04 { public static final int DATA_LIM = 8; public static void main(String[] args) { // 配列の宣言はCとは似ているが,初期化子を与える場合は要素数を指定しなくてよいなど少し違う double[] data = {1.0, 3.0, 5.0, 7.0, 9.0, 11.5, 13.0, 15.0}; // 初期化子不要で要素数を指定する場合は,配列はnewで作る // double[] data = new double[DATA_LIM]; int flag = 1; // 等差数列であれば 1 にする.そうでなければ 0 にする. int i; for (i = 0; i < (DATA_LIM - 2); i++) { if ((data[i + 1] - data[i]) != (data[i + 2] - data[i + 1])) { flag = 0; break; } } // Javaはif条件部の評価結果がint値になることは許容していないので, // 評価結果が真偽値(trueやfalse)になるように式を調整した. if (flag == 1) { System.out.printf("OK\n"); } else { System.out.printf("NG\n"); } } }