1.
begin if 忙しい then if 定食屋の行列は10人未満 then 定食を食べ、缶コーヒーを飲む。合計 560円 else レストランでランチを食べる。800円 else if 定食屋の行列は20人以下 then 定食を食べ、缶コーヒーを飲む。合計 560円 else レストランでランチを食べる。800円 end2.
(1)
1: #include <stdio.h> 2: main() { 3: int i,j,k,n; 4: char buf[20]; 5: printf("N = "); 6: fgets(buf,18,stdin); 7: n = atoi(buf); 8: for (i = 1; i <= n; i++ ) { 9: j = i * i; 10: k = n - j; 11: printf("K = %d\n",k); 12: if (k <= 0) break; // goto line80; 13: } 14: //line80: 15: if (k >= 0) // if (k < 0) goto line110; 16: printf("YES %d is %d * %d\n",n,i,i); 17: // goto line120; 18: //line110: 19: else printf("NO\n"); 20: //line120: 21: exit(0); 22: }別解1
8: i=0; do { i++; //for (i = 1; i <= n; i++ ) { 9: j = i * i; 10: k = n - j; 11: printf("K = %d\n",k); 12: // if (k <= 0) goto line80; 13: } while (k > 0); 14: //line80:別解2
8: i=0; k=n; while (k > 0) { i++; //for (i = 1; i <= n; i++ ) { 9: j = i * i; 10: k = n - j; 11: printf("K = %d\n",k); 12: // if (k <= 0) goto line80; 13: } 14: //line80:(2)
N = 16 K = 15 K = 12 K = 7 K = 0 YES 16 is 4 * 4 N = 13 K = 12 K = 9 K = 4 K = -3 NON = -1 の場合はループを通るかどうか、そのときに k の値が決まっているか、 決まっていない場合、処理系によってどのような値が入っているかなどによって 結果が異なる。for ループを使った場合 k の値は確定しないが、処理系によって 0 となる場合には
N = -1 YES -1 is 1 * 1のような結果となる。別解1の場合、k は -2 になるので、
N = -1 K = -2 NO別解2の場合には、while ループに入らないがそれまでに k の値が -1 に確定しているので、
N = -1 NOとなる。
3.
4.
同じ型のリストへのポインタをメンバに持っているような構造をしている。