7月24日(水) 2時限(11:00〜12:00) 実施 0410教室
持ち込み禁止です.よく復習してきてください.
後期の授業や来年度以降の授業に結果を反映させるため,アンケートに協力してください.
アンケートは無記名で,成績とは関係ありません.ありがとうございました.
1.「キーボードから入力された文字数を数えるプログラム」を元に,回文を判定するプログラムを作成してみよう.
回文とは,「しんぶんし」のように上から読んでも,下から読んでも同じになる言葉のことです.
入力された文字列を,反転し,元のものと同じかどうか判定します.
#include <stdio.h> void main() { char s[256], r[256]; int i, n, hantei; //文字列の入力 printf("文字列を入力してください:"); scanf("%s", s); //文字数を数える for(i=0; s[i] != 0x00; i++); n = i; printf("文字数は %d 文字です\n", n); //rにsの最後の文字から逆に代入 for(i=0; i<n; i++){ r[i] = s[n-1-i]; } //最後に文字列の終わりのマークを代入 r[n] = 0; printf("元の文字列は,%sです\n", s); printf("反転した文字列は,%sです\n", r); //回文判定用変数の初期化 hantei = 0; //sとrが同じかどうか、各要素を比較 for(i=0; i<n-1; i++){ if(s[i] != r[i] {hantei++} } //判定結果の表示 if(hantei){ printf("回文ではありません。\n"); }else{ printf("回文です。\n"); } }
乱数を利用して,プログラムをスタートすると
0がグー,1がチョキ,2がパー
として,どれかを出してくるプログラムをまず作ってみる.
これができるようになったら,こちらの手を数字で入力し,勝ち負けの判定もできるようにする.
#include <stdlib.h> #include <stdio.h> void main(void) { int kikai, hito; / 乱数発生ルーチンの初期化 randomize(); //機械側の手 kikai = rand() % 3; //人間の手の入力 printf("じゃんけんぽん グー:0、チョキ:1、パー:2 を入力:"); scanf("%d", &hito); //結果発表 printf("私:%d あなた:%d\n", kikai, hito); //勝負の判定 if(((kikai - hito + 3) % 3) == 0){ printf("引き分け\n"); }else if(((kikai - hito + 3) % 3) == 1){ printf("あなたの勝ち\n"); }else{ printf("私の勝ち\n"); } }