1.
begin
if 忙しい
then if 定食屋の行列は10人未満
then 定食を食べ、缶コーヒーを飲む。合計 560円
else レストランでランチを食べる。800円
else if 定食屋の行列は20人以下
then 定食を食べ、缶コーヒーを飲む。合計 560円
else レストランでランチを食べる。800円
end
2.(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.
同じ型のリストへのポインタをメンバに持っているような構造をしている。