なお,プロットは点PとQが重なる場合もあり得るし,また,PやQの表示と点の * 記号が重なる場合もあり得る.優先順位としては,まず * が確実に表示されるようにすること.PもしくはQが * のために表示されない場合がありうる.
|
| |||
普通の例 | プロットが重なった例 |
なお,結果の出力では必ず最初の行に自分の学生番号を,最後にハイフンによるラインをつけること.無い場合には減点するので注意.
2次元表示は外側のループが y 座標を管理し,内側が x 座標となります. if - else 文をうまく組み合わせてプロットしてください.解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がC言語のプログラムとなっていますので, cc コマンドを実行して,コンパイルエラーの無いことを確認してから提出してください.
// ************************************************** // // レポート課題 // 2019.01.21 // // ************************************************** // // 学生番号: // // 氏名: // // ************************************************** // // #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { srand((unsigned) time(NULL)); printf("My student number: s186099\n\n"); int x, y, x1, x2, y1, y2; x1 = rand() % 5 + 1; y1 = rand() % 5 + 1; x2 = rand() % 5 + 1; y2 = rand() % 5 + 1; printf("Points: P(%d,%d), Q(%d,%d)\n\ny\n", x1, y1, x2, y2); for(y=5; y>=1; y--) { printf("%d |", y); for(x=1; x<=6; x++) { if(x==x1 && y==y1) { printf(" *"); } else if(x==x2 && y==y2) { printf(" *"); } else if(x==x1+1 && y==y1) { printf("P "); } else if(x==x2+1 && y==y2) { printf("Q "); } else { printf(" "); } } printf("\n"); } printf("0 +"); for(x=1; x<=5; x++) { printf("--"); } printf("\n "); for(x=0; x<=5; x++) { printf("%d ", x); } printf("x\n\n---------------------------------\n\n"); return 0; } |