A,B が1桁の正整数のとき,(A * 10 + B) ― (B * 10 + A) = 45となる,A,Bの組み合わせを求めよ.
A,B ともに1桁の正整数であるから,それぞれ0から9の間の数を取る.どの組み合わせの時45になるかを毎回計算しながら,確かめていけばよい.
1. Aを0にする 2. Aが9になるまで,以下を繰り返す 2-1 Bを0にする 2-2 Bが9になるまで,以下を繰り返す 2-2-1 式が成り立つか判定しする 2-2-1T 成り立つとき,AとBの値を表示する 2-2-1F 成り立たないとき,なにもしない |
となる.これを,プログラムにしてみよう.
解答例:
#include <stdio.h> void main() { int a, b; for(a=0; a<=9; a++){ for(b=0; b<=9; b++){ if((a*10+b)-(b*10+a)==45) printf("A=%d B=%d\n", a, b); } } }
年利5%の複利(1年経つごとに利子を元金に繰り入れて,その加算額を次期の元金とする)の定期預金に1万円預けると,元利合計が10万円を超えるのは何年後になるかを求めよ.
この問題では,毎年元利合計金額を計算しその額が10万円を超えるまでの年数を数える.何年繰り返すかは,プログラム作成時点ではわかっていないので,whileループを使ってみよう.
1. 預けた年数を0,元利合計を1万円にする 2. 元利合計が10万円を超えるまで,以下を繰り返す 2-1 年数に1加える 2-2 前の年の元利合計に,利息分を上乗せする 3. かかった年数を表示する |
となる.これを,プログラムにしてみよう.
解答例:
#include <stdio.h> void main() { int year, sum; year = 0; sum = 10000; while(sum<100000){ year++; sum *= 1.05; } printf("%d年後です", year); }
今週は,配列について学びます.
配列は,同じ型のデータを一つにまとめて扱うために編み出された方法です.多くのデータを扱うには,なくてはならないものです.
int型一つ分の数値を入れることのできる箱を で表すと,
4つのint型変数を用意するには,
int a, b, c, d;
と宣言し,
この図のようなイメージになります.変数a, b, c, d に同じ仲間の数が入るような場合,これらをまとめて扱うために配列を用います.配列を用いて,4つのint型変数を用意するには,
int a[4];
と宣言し,
この図の用なイメージとなり,4つの変数をまとめて配列aとして扱います.
ここで,中身 a[0] から a[3] (0から3の4個であることに注意)を配列 a の要素とよび,a[0] の 0 のことを,添え字とかインデックスと呼びます.
配列を初期化するには,{ } を使って値を列挙します.
int a[4] = { 1, 2, 3, 4 };
int a[4];
int n = 1;
a[0] = 1;
a[1] = 2;
printf("%d\n", a[0]);
printf("%d\n", a[n]);
注意!!:添え字は,0から(要素数-1)の範囲です.この範囲外の要素を参照しようとすると,ハングアップします.
#include <stdio.h> void main() { int a[10] = {1,2,3,4,5,6,7,8,9,10}; int i, sum; sum = 0; for(i=0; i<10; i++){ sum += a[i]; } printf("合計 = %d\n", sum); }
整数型配列に初期値として,{10,20,30,40,50}を設定する.
キーボードから配列の要素番号を入力すると,その配列の要素の値を表示するプログラムを作成しなさい.
#include <stdio.h> void main() { int a[5] = {10, 20, 30, 40, 50}; int num; printf("Select data (0-4):"); scanf("%d", &num); if (num<0 || num>4){ printf("範囲を出ています"); }else{ printf("Data = %d\n",a[num]); } }
整数型配列に初期値として,(10,20,30,40,50)を設定したとき,全ての要素の値を表示するプログラムを作成しなさい.
(forループを使って)
配列に格納された10個の数を,大きい順に並べかえて表示するプログラム(ソート)を作りなさい.
手順:
まず,「応用」のプログラムを利用して,10個の数を画面に表示するプログラムを作ろう.
大きい順に並べ替えるには,どのようなプログラムを作ったらよいか,アルゴリズムを考えてから,プログラムを考えよう.