BEGIN { maxn=ARGC>1?ARGV[1]:10 maxn-- ARGV[1]="" srand() print "\x1b[2Jかけざんのおけいこ" do { nm++ n1=randint(maxn)+1 n2=randint(maxn)+1 printf("\nだい %d もん %g × %g = ? ",nm,n1,n2) while((input=getline)>0) if($0==n1*n2) { print "\x1b[2Jよくできました。(「Q」でおわり)" nr++ break } else if($0~/[?Hh]/) { print "ただしいこたえは",n1*n2,"です。" nd++ break } else if($0~/[Qq]/) { exit } else if($0=="") { printf("もういちど、どうぞ。:") } else { printf("まちがえています。もういちど、どうぞ。:") nw++ } } while(input>0) } END { nm-- printf("\nもんだいすう      %d\n",nm) printf("せいかいすう      %d\n",nr) printf("まちがえたかいすう   %d\n",nw) printf("わからなかったかいすう %d\n",nd) if(nm>19 && nw==0 && nd==0) printf("\nぜんもんせいかい! あなたはてんさいです!\n") } function randint(n) {return int(rand()*n)+1}