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");
}
}