// 課題14 単方向リスト ループ /* #include #include #include #define LIMIT_LOW 0 #define LIMIT_HIGH 25 // 構造体の定義 typedef struct tag { int temp; // 温度 struct tag *next; // 自分自身の型へのポインタ変数 } tempData; // 温度データ // 新データ作成関数 tempData* makeNewNode(int t) { tempData* pNewNode; //** person 型のメモリ領域確保 ** pNewNode = (tempData*)malloc(sizeof(tempData)); if (pNewNode != NULL) { //** データ設定 ** pNewNode->temp= t; pNewNode->next = NULL; } return pNewNode ; } int main(void) { int temp; // 温度入力用変数 tempData *pTop; // 温度データリストのトップ tempData *pNow; // 温度データリスト内の現在位置 tempData *pNew; // 温度データの新規データ // 必要であれば,ここに変数を追加 int c, ave; // 最初のデータは,必ず範囲内のデータであるとする scanf("%d", &temp); ave = temp; pTop = makeNewNode(temp); pNow = pTop; // 次のデータを入力 scanf("%d", &temp); c = 1; while ( (LIMIT_LOW <= temp) && (temp <= LIMIT_HIGH)) { // ここにリスト作成処理を記述 pNew = makeNewNode(temp); pNow->next = pNew; pNow = pNew; ave = ave + temp; c = c + 1; // 次のデータを入力 scanf("%d", &temp); } ave = ave / c ; // ここに平均より大きいデータだけ表示する処理 pNow = pTop; while (pNow != NULL) { if (pNow->temp > ave) { printf("%d\n", pNow->temp); } pNow = pNow->next; } return 0 ; } */ import java.util.Scanner; public class Exer14 { public static final int LIMIT_LOW = 0; public static final int LIMIT_HIGH = 25; public static void main(String[] args) { int temp; // 温度入力用変数 TempData14 pTop; // 温度データリストのトップ TempData14 pNow; // 温度データリスト内の現在位置 TempData14 pNew; // 温度データの新規データ // 必要であれば,ここに変数を追加 int c, ave; // 最初のデータは,必ず範囲内のデータであるとする Scanner scanner = new Scanner(System.in); temp = scanner.nextInt(); ave = temp; pTop = new TempData14(temp); pNow = pTop; // 次のデータを入力 temp = scanner.nextInt(); c = 1; while ((LIMIT_LOW <= temp) && (temp <= LIMIT_HIGH)) { // ここにリスト作成処理を記述 pNew = new TempData14(temp); pNow.next = pNew; pNow = pNew; ave = ave + temp; c = c + 1; // 次のデータを入力 temp = scanner.nextInt(); } scanner.close(); ave = ave / c; // ここに平均より大きいデータだけ表示する処理 pNow = pTop; while (pNow != null) { if (pNow.temp > ave) { System.out.printf("%d\n", pNow.temp); } pNow = pNow.next; } } } class TempData14 { public int temp; // 温度 public TempData14 next; // 次のデータ public TempData14(int t) { temp = t; next = null; } }