このプログラムではまず以下のように配列を定義し,2重の for 文でアスキーコードからランダムに文字を入れていくようにすること.
char str[10][4]; |
My student number: s144099 jeb bbe jhc gdg gha cac bbh afb baj fic Lucky character: "e" jeb bbe ---------------------------- |
前回の宿題と同様に文字はアスキーコードを通して数値として扱えることを利用します.
配列にランダムに文字列を入れる際には文字列の最後にヌル文字 '\0' を入れるのを忘れないでください.
解答用紙を使用する際には,まず,科目名の不要な方を削除してください.また,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がC言語のプログラムとなっていますので, cc コマンドを実行して,コンパイルエラーの無いことを確認してから提出してください. 指定の解答用紙を使用していない,コンパイルエラーが出る,実行時に警告が出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください. |
/* ************************************************** */ /* */ /* プログラミング入門 情報科学演習C7 */ /* レポート課題 */ /* 2015.01.26 */ /* */ /* ************************************************** */ /* */ /* 学生番号: */ /* */ /* 氏名: */ /* */ /* ************************************************** */ /* */ /* この行以降に解答のプログラムを書くこと */ #include <stdio.h> #include <stdlib.h> #include <time.h> main() { srand((unsigned) time(NULL)); int i, j, flag, index; char str[10][4]; printf("My student number: s144099\n\n"); for(i=0; i<=9; i++){ for(j=0; j<=2; j++) str[i][j] = rand() % 10 + 97; str[i][3] = '\0'; printf("%s ", str[i]); } printf("\n"); index = rand() % 10 + 97; printf("Lucky character: \"%c\"\n", index); for(i=0; i<=9; i++){ flag = 0; for(j=0; j<=2; j++) if(str[i][j]==index) flag = 1; if(flag==1) printf("%s ", str[i]); } printf("\n\n----------------------------\n\n"); return(0); } |