キーボードからの入力

練習問題6

MMGames


基本知識


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関数は、入力ミスをチェックすることが出来ないため。
問題

サイト目次


第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