MMGamesロゴ  MMGames
Twitterシェアボタン  Facebookシェアボタン   
 English 

しんで覚えるC言語
しんで覚えるC言語

練習問題6

基本知識

問 1-1
キーボードから数値を入力するために使う関数は?


問 1-2
上記の関数を使うとき、変数名の前に付ける記号は?

プログラム読取
次のプログラムは、何を計算するためのプログラムなのか、
処理内容や変数名から判断して答えよ。

問 2-1
#include <stdio.h>

int main(void)
{
    int side, high, square;

    scanf("%d,%d", &side, &high);
    square = side * high / 2;
    printf("%d\n", square);

    return 0;
}

プログラム書取

問 3-1
定価を入力すると、1割引、3割引、5割引、8割引の値段を、一覧表示するプログラムを作成せよ。なお、結果の金額は整数値での表示が望ましいが、実数でもかまわない。

記述式

問 4-1
実は、scanf関数は、信頼性が必要なプログラムではほとんど使われない。
それはなぜか、簡潔に説明せよ。

基本知識(解答例)

解 1-1
scanf関数

※なお、まだ紹介はしていませんが、他にも類似の関数は多数あります。

解 1-2
&

プログラム読取(解答例)

解 2-1
三角形の面積を計算するプログラムであることが、
変数名(辺、高さ、面積)や処理内容(辺×高さ÷2)からわかる。

※理由を具体的に述べられなくても、なんとなく察することができたのならば、正解とします。
※ちょっと難しい問題だったかもしれません。
 しかし、プログラムを続けていくには、他の人が書いたプログラムを読むことは必ず求められます。
 プログラムの処理だけでなく、目的まで含めて読み取れるように頑張りましょう!
プログラム書取(解答例)

問 3-1
#include <stdio.h>

int main(void)
{
    int price;

    printf("定価を入力して下さい : ");
    scanf("%d", &price);

    printf("1割引 = %d円\n", (int)(price * 0.9));
    printf("3割引 = %d円\n", (int)(price * 0.7));
    printf("5割引 = %d円\n", (int)(price * 0.5));
    printf("8割引 = %d円\n", (int)(price * 0.2));

    return 0;
}


実行結果
定価を入力してください : 198
1割引 = 178円
3割引 = 138円
5割引 = 99円
8割引 = 39円

※ここでは1割引を0.9倍としていますが、1割引であることを明示したければ、
(int)(price * (1 - 0.1)) とすればより1割引らしくなります。
※割引ごとに変数を作って代入しても良い。
※結果が実数であっても良い。
※計算方法によって、多少結果が異なる可能性があるが、計算方法が正しければ正解とします。
※scanf関数で変数に付ける & を忘れやすいので注意。
記述式(解答例)

解 4-1
scanf関数は、入力ミスをチェックすることが出来ないため。



本サイトについて

苦しんで覚えるC言語(苦C)は
C言語入門サイトの決定版です。
C言語の基本機能を体系立てて解説しており、
市販書籍と同等以上の完成度です。

第0部:プログラム概要編
  1. プログラムとは何か?
2章:プログラムの書き方
  1. 書き方のルール
  2. 書き方の慣習
  3. 練習問題2
3章:画面への表示
  1. 文字列の表示
  2. 改行文字
  3. 練習問題3
6章:キーボードからの入力
  1. 入力用の関数
  2. 入力の恐怖
  3. 練習問題6
9章:回数が決まっている繰り返し
  1. 繰り返しを行う文
  2. ループ動作の仕組み
  3. 練習問題9
10章:回数がわからない繰り返し
  1. 回数不明ループ
  2. 入力チェック
  3. 練習問題10
13章:複数の変数を一括して扱う
  1. 複数の変数をまとめて扱う
  2. 配列の使い方
  3. 練習問題13
20章:複数のソースファイル
  1. 最小限の分割
  2. 分割の定石
  3. 練習問題20

コメント
COMMENT

💬 コメント投稿欄を開く