1
(要点のみ)
Q1-1
コンパイラ型はプログラムの実行速度が速いが,インタプリタ型は実行速度が遅い.しかし,プログ
ラムに対して改変を行うような場合には,コンパイラ型よりもインタプリタ型の方が手軽にできる.
Q1-2
exe ファイルは 0 と 1 の機械語で書かれているファイルであり,その実行のためにはライブラリファ
イルを要することもある.
Q1-3
Java,Perl,PHP,JavaScript,Ruby 等.
(要点のみ)
Q2-1
C++言語は従来の仕様に加えて,オブジェクト指向の概念が取り入れられている言語である.
Q2-2
フリーソフトは基本的に無料で使用に制限がないソフトを言う.これに対し,シェアウェアは有料の
ソフトであり,料金を支払わないと使用できない.しかし,初めは試用期間が設けられていたり,一
部の機能が制限されている状態等の条件付きで最初は料金を払わなくても使用できる場合が多い.
Q3-1
1 #include<stdio.h>
2 main()
3 {
4
printf("機械語\n アセンブリ言語\n 高水準言語");
5 }
Q3-2
1 #include<stdio.h>
2 main()
3 {
4
printf("A\nB\tC\\D\?E\'F\"");
5 }
Q3-3
1 #include<stdio.h>
2 main()
3 {
4
printf("A\n\tB\n\t\tC\n\t\t\tD\n\t\t\t\tE");
5 }
Q3-4
1 #include<stdio.h>
2 main()
3 {
4
printf("A\t\t\t\tB\n\tC\t\tD\n\t\tE\n");
5
printf("\tF\t\tG\nH\t\t\t\tI");
6 }
楽しく学べる
C 言語 演習問題解答
第3章
第1章
第2章
2
Q4-1
1 #include<stdio.h>
2 main()
3 {
4
int a = 55,b = 65,c = 75;
5
6
printf("%d\t%d\t%d",a,b,c);
7 }
Q4-2
1 #include<stdio.h>
2 main()
3 {
4
int a = -10;
5
6
double b = 6.52;
char c = 'G';
7
8
printf("%d\t%.2f\t%c",a,b,c);
9 }
Q4-3
1 #include<stdio.h>
2 main()
3 {
4
int a = 100,b = 10000,c = 1000000;
5
6
printf("変数に代入されている値は%d と%d と%d です",a,b,c);
7 }
Q4-4
1 #include<stdio.h>
2 main()
3 {
4
int a = 75,b = 107;
5
6
printf("%c は%d 番目で、%c は%d 番目です",a,a,b,b);
7 }
Q4-5
1 #include<stdio.h>
2 main()
3 {
4
char a = '|';
5
6
printf("%c は%d 番目です",a,a);
第4章
3
Q4-6
1
#include<stdio.h>
2
main()
3
{
4
int a = 10;
5
6
double b = 3.5;
7
printf("変数に代入した値は%f と%d です",a,b);
8
9
/*変換指定子の誤りである。変数 a の変換指定子は%d
で変数 b の変換指定子は%f でなければならない*/
10 }
Q4-7
1 #include<stdio.h>
2 main()
3 {
4
double pi = 3.14159265358979323846264338327950288;
5
6
printf("πの値は%.30f です",pi);
7 }
Q5-1
1 #include<stdio.h>
2 main()
3 {
4
5
6
7
int teihen = 5;
int takasa = 3;
double menseki;
8
menseki = teihen * takasa / 2.0;
9
printf("底辺%d 高さ%d の三角形の面積は%.1f です",teihen,takasa,menseki);
7 }
Q5-2
1
#include<stdio.h>
2
main()
3
{
4
5
6
7
int goukei;
double heikin;
goukei = 65 + 59 + 71 + 81 + 77;
8
heikin = goukei / 5.0;
9
printf("これらのデータの合計は%d で平均は%f です",goukei,heikin);
10 }
第5章
4
Q5-3
1
#include<stdio.h>
2
main()
3
{
4
5
6
7
int kyori = 300;
double meter;
meter = kyori * 3600 / 3937.0;
8
printf("%d ヤードは%fm です",kyori,meter);
9
}
Q5-4
1
#include<stdio.h>2
main()3
{4
5
6
7
int hankei = 5; double hyoumenseki,taiseki; double pi = 3.141592;8
hyoumenseki = 4 * pi * hankei * hankei;9
taiseki = 4.0 / 3 * pi * hankei * hankei * hankei;10
printf("半径%d の球の表面積は%f で体積は%f です",hankei,hyoumenseki,taiseki);11
}Q5-5
1
#include<stdio.h>2
main()3
{4
5
6
7
double R;
R = 1 / (( 1.0 / 5 ) + ( 1.0 / 6 ) + ( 1.0 / 7 ) + ( 1.0 / 8 ));
printf("合成抵抗 R は%f です",R);
8
}Q5-6
1
#include<stdio.h>
2
#include<math.h>
3
main()
4
5
6
7
{
int yzahyou;
yzahyou = pow(3,4) - 2 * pow(3,2) - 2;
8
9
printf("x 座標が 3 の時の y 座標の値は%d です",yzahyou);
10 }
5
Q5-7
1
#include<stdio.h>
2
#include<math.h>
3
main()
4
5
6
7
{
double kyori;
kyori = sqrt(( 3 - 1 ) * ( 3 - 1 ) + ( 3 - 5 ) * ( 3 - 5 ));
8
9
printf("点 1,5 と点 3,3 の距離は%f です",kyori);
10 }
Q5-8
1
#include<stdio.h>
2
#include<math.h>
3
main()
4
5
6
7
{
int a = 5, b = 4, kakudo = 70;
double radian,menseki;
double pi = 3.1415926535;
8
9
radian = kakudo * pi / 180;
10
menseki = 1 / 2.0 * a * b * sin(radian);
11
printf("a=%d、b=%d で挟角が%d 度の三角形の面積は%.10f です",a,b,kakudo,menseki);
12 }
Q5-9
1
#include<stdio.h>
2
#include<math.h>
3
main()
4
5
6
7
{
double sahen,uhen;
sahen = log10(5);
8
uhen = log(5) / log(10);
9
10
11
printf("等式の左辺は%f で、右辺は%f です",sahen,uhen);
}
6
Q5-10
1
#include<stdio.h>
2
main()
3
{
4
5
6
7
int a = 10, b = 3;
int shou,amari;
shou = a / b;
8
amari = a - shou * b;
9
printf("%d÷%d の余りは%d です",a,b,amari);
10 }
Q6-1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h> main() { int joutei,katei,takasa; double menseki; printf("台形の面積を算出します\n 上底を入力して下さい"); scanf("%d",&joutei); printf("下底を入力して下さい"); scanf("%d",&katei); printf("高さを入力して下さい"); scanf("%d",&takasa);menseki = ( joutei + katei ) * takasa / 2.0;
printf("上底%d、下底%d、高さ%d の台形の面積は%.1f です",joutei,katei,takasa,menseki); }
Q6-2
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
main()
{
double kouti,menseki;
printf("何反の耕地面積ですか");
scanf("%lf",&kouti);
menseki = kouti * 300 * 3.30578;
printf("耕地面積は%fm^2 です",menseki);
}
第6章
7
Q6-3
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
main()
{
int x;
double y;
printf("7x+8y-13=0 の x 座標を入力して下さい");
scanf("%d",&x);
y = ( 13 - 7 * x ) / 8.0;
printf("x 座標が%d の y 座標は%f です",x,y);
}
Q6-4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
main()
{
int data1,data2,data3;
double tyouwa;
printf("調和平均を算出します\n1 つめのデータを入力して下さい");
scanf("%d",&data1);
printf("2 つめのデータを入力して下さい");
scanf("%d",&data2);
printf("3 つめのデータを入力して下さい");
scanf("%d",&data3);
tyouwa = 1 / ((( 1.0 / data1 ) + ( 1.0 / data2 ) + ( 1.0 / data3 )) / 3 );
printf("データ%d、%d、%d の調和平均は%f です",data1,data2,data3,tyouwa);
}
Q6-5
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
#include<math.h>
main()
{
int x;
double V;
printf("正八面体の体積を算出します\n1 辺の長さを入力して下さい");
scanf("%d",&x);
V = 1.0 / 3 * sqrt(2) * pow(x,3);
printf("1 辺が%d の正八面体の体積は%f",x,V);
}
8
Q6-6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
#include<math.h>
main()
{
int a,b,c;
double s,T;
printf("三角形の面積を算出します\n1 つめの辺の長さを入力して下さい");
scanf("%d",&a);
printf("2 つめの辺の長さを入力して下さい");
scanf("%d",&b);
printf("3 つめの辺の長さを入力して下さい");
scanf("%d",&c);
s = ( a + b + c ) / 2.0;
T = sqrt( s * ( s - a ) * ( s - b ) * ( s - c ));
printf("3 辺の長さが%d,%d,%d の三角形の面積は%f です",a,b,c,T);
}
Q6-7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include<math.h>
main()
{
int a,b,theta;
double radian,x;
double pi = 3.141592;
printf("三角形の 1 辺の長さを入力して下さい");
scanf("%d",&a);
printf("もう 1 辺の長さを入力して下さい");
scanf("%d",&b);
printf("挟角の角度を入力して下さい");
scanf("%d",&theta);
radian = pi * theta / 180;
x = sqrt( a * a + b * b - 2 * a * b * cos(radian));
printf("辺 x の長さは%f です",x);
}
9
Q6-8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<math.h>
main()
{
int v0,theta,t;
double radian,x,y;
double pi = 3.141592,g = 9.80665;
printf("初速度 v0 を入力して下さい");
scanf("%d",&v0);
printf("角度を入力して下さい");
scanf("%d",&theta);
printf("時間を入力して下さい");
scanf("%d",&t);
radian = pi * theta / 180;
x = v0 * cos(radian) * t;
y = v0 * sin(radian) * t - 1 / 2.0 * g * t * t;
printf("水平方向の位置 x は%f、垂直方向の位置 y は%f です",x,y);
}
Q6-9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
#include<math.h>
main()
{
int data1,data2,data3;
double heikin,hensa1,hensa2,hensa3,bunsan,hyoujun;
printf("標準偏差を算出します\n1 つめのデータを入力して下さい");
scanf("%d",&data1);
printf("2 つめのデータを入力して下さい");
scanf("%d",&data2);
printf("3 つめのデータを入力して下さい");
scanf("%d",&data3);
heikin = ( data1 + data2 + data3 ) / 3.0;
hensa1 = data1 - heikin;
hensa2 = data2 - heikin;
hensa3 = data3 - heikin;
bunsan = ( pow( hensa1, 2 ) + pow( hensa2, 2 ) + pow( hensa3, 2 )) / 3.0;
hyoujun = sqrt( bunsan );
printf("データ%d,%d,%d の標準偏差は%f です",data1,data2,data3,hyoujun);
}
10
Q7-1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h> main() { int seisu; printf("整数を入力して下さい"); scanf("%d",&seisu); if ( seisu > 0 ) { printf("正の数です"); } else if ( seisu < 0 ) { printf("負の数です"); } else { printf("ゼロです"); } }Q7-2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h> main() { int seisu,amari; printf("整数を入力して下さい"); scanf("%d",&seisu); amari = seisu % 2; if ( seisu == 0 ) { printf("ゼロです"); } else if ( amari == 0 ) { printf("偶数です"); } else { printf("奇数です"); }第7章
11
Q7-3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h> main() { int a,b,c,D; printf("2 次方程式の解の判別をします\n 係数 a を入力して下さい"); scanf("%d",&a); printf("係数 b を入力して下さい"); scanf("%d",&b); printf("係数 c を入力して下さい"); scanf("%d",&c); D = b * b - 4 * a * c; if ( D > 0 ) { printf("異なる 2 つの実数解を持ちます"); } else if ( D == 0 ) { printf("重解を持ちます"); } else { printf("実数解を持ちません"); } }Q7-4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<stdio.h> main() { int x,y,sa; printf("1 つめの数字を入力して下さい"); scanf("%d",&x); printf("2 つめの数字を入力して下さい"); scanf("%d",&y); if ( x > y ) { sa = x - y; printf("差は%d です",sa); } else if ( y > x ) { sa = y - x; printf("差は%d です",sa); } else { printf("同じ数です"); } }12
Q7-5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include<stdio.h> main() { int kakaku,kosuu,goukei; printf("商品の価格を入力して下さい"); scanf("%d",&kakaku); printf("購入個数を入力して下さい"); scanf("%d",&kosuu);goukei = kakaku * kosuu;
if ( kosuu < 10 ) { printf("合計金額は%d 円です",goukei); } else if ( kosuu < 20 ) { goukei = goukei * 0.9; printf("合計金額は%d 円です",goukei); } else if ( kosuu < 30 ) { goukei = goukei * 0.8; printf("合計金額は%d 円です",goukei); } else if ( kosuu < 40 ) { goukei = goukei * 0.7; printf("合計金額は%d 円です",goukei); } else if ( kosuu < 50 ) { goukei = goukei * 0.6; printf("合計金額は%d 円です",goukei); } else { goukei = goukei * 0.5; printf("合計金額は%d 円です",goukei); } }
13
Q7-6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h> main() { int x,y,z; printf("1 つめの整数を入力して下さい"); scanf("%d",&x); printf("2 つめの整数を入力して下さい"); scanf("%d",&y); printf("3 つめの整数を入力して下さい"); scanf("%d",&z); if ( x >= y && z >= y ) { printf("最も小さい数字は%d です",y); } else if ( x >= y && y >= z ) { printf("最も小さい数字は%d です",z); } else { printf("最も小さい数字は%d です",x); } }Q7-7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h> main() { int jikan; printf("現在の時間を入力して下さい"); scanf("%d",&jikan); if ( jikan <= 5 || jikan >= 18 ) { printf("こんばんは"); } else if ( jikan <= 11 ) { printf("おはようございます"); } else { printf("こんにちは"); } }14
Q7-8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<stdio.h> #include<math.h> main() { int a,b,c,D; double kai1,kai2; printf("係数 a を入力して下さい"); scanf("%d",&a); printf("係数 b を入力して下さい"); scanf("%d",&b); printf("係数 c を入力して下さい"); scanf("%d",&c); if ( a == 0 && b == 0 ) { printf("解はありません"); } else if ( a == 0 ) { kai1 = (double)-c / b; printf("解は%f です",kai1); } else { D = b * b - 4 * a * c; if ( D < 0 ) { printf("実数解を持ちません"); } else if ( D >= 0 ) { kai1 = ( -b + sqrt(D)) / ( 2 * a ); kai2 = ( -b - sqrt(D)) / ( 2 * a ); if ( D == 0 ) { printf("解は重解で%f です",kai1); } else { printf("解は%f と%f です",kai1,kai2); } } } }15
Q7-9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<stdio.h> main() { int seisuu,keta3,keta2,keta1,stock,flag1,flag2,flag3; printf("3 桁の整数を入力して下さい"); scanf("%d",&seisuu); keta3 = seisuu / 100;keta2 = ( seisuu - keta3 * 100 ) / 10; keta1 = seisuu - keta3 * 100 - keta2 * 10; if ( keta3 < keta2 )
{
if ( keta2 < keta1 ) {
stock = keta3 * 100 + keta2 * 10 + keta1; }
else {
stock = keta3 * 100 + keta1 * 10 + keta2; }
}
else if ( keta1 < keta2 ) {
if ( keta2 < keta3 ) {
stock = keta1 * 100 + keta2 * 10 + keta3; }
else {
stock = keta1 * 100 + keta3 * 10 + keta2; } } else { if ( keta1 < keta3 ) {
stock = keta2 * 100 + keta1 * 10 + keta3; }
else {
stock = keta2 * 100 + keta3 * 10 + keta1; }
}
printf("並べ替えられた整数は%d です",stock); }
16
Q8-1
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h> main() { int tyotiku = 25000; int wa = 0; int count;for ( count = 0; wa < 1000000; count++ ) { wa = wa + tyotiku; } printf("%d ヶ月目に%d 円貯蓄できます",count,wa); }
Q8-2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h> main() { int ippankou = 2; int wa = 0; int count;for ( count = 1; count <= 50; count++ ) { printf("%d\t",ippankou); wa = wa + ippankou; ippankou = ippankou + 4; } printf("この数列の和は%d です",wa); }
Q8-3
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h> main() { double ippankou = 0.0, wa = 0.0; while ( wa < 250 ) { ippankou = ippankou + 0.2; wa = wa + ippankou; } printf("この数列の和が 250 以上になる時の一般項は%.1f です",ippankou);第8章
17
Q8-4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h> main() { int ippankou = 501; int wa = 0; int zouka = 1; while ( wa >= 0 ) {ippankou = ippankou - zouka; wa = wa + ippankou; zouka++; } printf("この数列の和が負になる時の一般項は%d です",ippankou); }
Q8-5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h> main() { int x,y,count; int bekijou = 1; printf("x の y 乗を算出します\nx を入力して下さい"); scanf("%d",&x); printf("y を入力して下さい"); scanf("%d",&y);for ( count = 1; count <= y; count++ ) { bekijou = bekijou * x; } printf("x の y 乗は%d です",bekijou); }
Q8-6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h> main() { int a0,d,nankou,count; printf("初項を入力して下さい"); scanf("%d",&a0); printf("公差を入力して下さい"); scanf("%d",&d); printf("第何項まで表示しますか"); scanf("%d",&nankou);for ( count = 1; count <= nankou; count++ ) {
printf("%d\t",a0); a0 = a0 + d; }
18
Q8-7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h> main() {int ippankou = 1, wa = 0, zouka = 2; int count;
for ( count = 1; count <= 50; count++ ) {
printf("%d\t",ippankou); wa = wa + ippankou;
ippankou = ippankou + zouka; zouka = zouka + 2; } printf("この数列の和は%d です",wa); }
Q8-8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h> main() {int ippankou = 2, wa = 0, tousa = 2, hugou = -1; int count;
for ( count = 1; count <= 50; count++ ) {
printf("%d\t",ippankou); wa = wa + ippankou; tousa = tousa + 3; ippankou = tousa * hugou; hugou = hugou * -1; } printf("この数列の和は%d です",wa); }
Q8-9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h> main() {int shokou = 0, daini = 1; int daisan,count;
printf("%d\t%d\t",shokou,daini); for ( count = 3; count <= 30; count++ ) {
daisan = shokou + daini; printf("%d\t",daisan); shokou = daini; daini = daisan; }
19
Q8-10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h> main() {int bunbo = 1, hugou = 1; double wa = 0.0;
int count;
double ippankou,pi;
for ( count = 1; count <= 1000; count++ ) {
ippankou = 1.0 / bunbo * hugou; wa = wa + ippankou; pi = 4 * wa; printf("%f\t",pi); bunbo = bunbo + 2; hugou = hugou * -1; } }
Q8-11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h> main() { int count1,count2;for ( count1 = 1; count1 <= 5; count1++ ) {
for ( count2 = 1; count2 <= count1; count2++ ) { printf("+"); } printf("\n"); } }
20
Q8-12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h> main() { int count1,count2,count3;for ( count1 = 1; count1 <= 10; count1++ ) { if ( count1 <= 5 ) { count3 = count1; } else { count3 = 10 - count1; }
for ( count2 = 1; count2 <= count3; count2++ ) { printf("+"); } printf("\n"); } }
Q8-13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<stdio.h> main() { int kingaku,gojuu,juu,go,iti; int kumiawase = 0; printf("50 円\t10 円\t5 円\t1 円\n"); for ( gojuu = 0; gojuu <= 1; gojuu++ ) {for ( juu = 0; juu <= 5; juu++ ) {
for ( go = 0; go <= 10; go++ ) {
for ( iti = 0; iti <= 50; iti++ ) {
kingaku = 50 - ( 50 * gojuu + 10 * juu + 5 * go + 1 * iti ); if ( kingaku == 0 ) { printf("%d\t%d\t%d\t%d\n",gojuu,juu,go,iti); iti = 51; kumiawase++; } } } } } printf("組み合わせの数は%d です",kumiawase); }
21
Q9-1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h> main() { int suuretu[30]; int goukei = 0; int count;for (count = 0; count <= 29; count++) {
suuretu[count] = 2 * (count + 1); goukei = goukei + suuretu[count]; } printf("この数列の和は%d です",goukei); }
Q9-2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h> main() { int dataA[10] = {30,45,62,25,18,51,15,73,49,68}; int dataB[10] = {56,68,75,86,35,55,24,11,73,80}; int kotae,count; printf("加算の結果は\n");for ( count = 0; count <= 9; count++ ) {
kotae = dataA[count] + dataB[count]; printf("%d\t",kotae); } }
Q9-3
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h> main() { int data[15] = {31,52,47,33,86,74,85,66,59,82,74,58,69,81,67}; int kotae,count; printf("減算の結果は\n");for ( count = 0; count <= 12; count++ ) {
kotae = data[count] - data[count+2]; printf("%d\t",kotae);
}
22
Q9-4
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h> main() { int data[15] = {31,52,47,33,86,74,85,66,59,82,74,58,69,81,67}; int kotae,count; printf("加算の結果は\n");for ( count = 0; count <= 6; count++ ) {
kotae = data[count] + data[14-count]; printf("%d\t",kotae); } }
Q9-5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<stdio.h> main() { int data[20] = {31,52,47,33,86,74,85,66,59,82,74,58,69,81,67,86,97,57,13,30}; int count1,count2,stock;for ( count1 = 0; count1 <= 19; count1++ ) {
printf("%d\t",data[count1]); }
printf("\n を降順で並べ替えると\n");
for ( count1 = 0; count1 <= 18; count1++ ) {
for ( count2 = count1 + 1; count2 <= 19; count2++ ) { if ( data[count1] < data[count2] ) { stock = data[count2]; data[count2] = data[count1]; data[count1] = stock; } } }
for ( count1 = 0; count1 <= 19; count1++ ) {
printf("%d\t",data[count1]); }
23
Q9-6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h> main() { int data[5]; int count,stock; printf("5 つのデータを入力して下さい\n"); for ( count = 1; count <= 5; count++ ) {printf("%d つめ",count); scanf("%d",&data[count-1]); }
for ( count = 1; count <= 4; count++ ) { if ( data[0] > data[count] ) { data[0] = data[count]; } } printf("最小値は%d です",data[0]); }
Q9-7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<stdio.h> main() { int data[20] = {31,52,47,33,86,74,85,66,59,82,74,58,69,81,67,86,97,57,13,30}; int x,y,count; int flag = 0; printf("いくら以上ですか"); scanf("%d",&x); printf("いくら以下ですか"); scanf("%d",&y);for ( count = 0; count <= 19; count++ ) {
if ( data[count] >= x && data[count] <= y ) {
printf("%d\t",data[count]); flag = 1;
}
if ( count == 19 && flag == 0 ) {
printf("該当データはありません"); }
} }
24
Q9-8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<stdio.h> main() { int suretu[20] = {27,16,9,12,21,6,13,14,30,5,18,24,29,2,11,19,8,15,4,30}; int count1,count2,count3,stock;for ( count1 = 1; count1 <= 19; count1++ ) {
stock = suretu[count1];
for ( count2 = 0; count2 < count1; count2++ ) {
if ( suretu[count1] < suretu[count2] ) {
for ( count3 = count1 - 1; count3 >= count2; count3-- ) { suretu[count3 + 1] = suretu[count3]; } suretu[count2] = stock; break; } } }
for ( count1 = 0; count1 <= 19; count1++ ) { printf("%d\t",suretu[count1]); } }
Q9-9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h> main() { int maisu[9] = {10000,5000,1000,500,100,50,10,5,1}; int kingaku,count1,count2; printf("5 桁の金額を入力して下さい"); scanf("%d",&kingaku);for ( count1 = 0; count1 <= 8; count1++ ) {
for ( count2 = 0; kingaku >= maisu[count1]; count2++ ) {
kingaku = kingaku - maisu[count1]; }
printf("%d 円は%d 枚\n",maisu[count1],count2); }
25
Q10-1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h> main() { int a[3][2] = {{2,5},{1,8},{7,2}}; int b[3][2] = {{1,10},{9,3},{7,5}}; int kotae[3][2],kai,heya;for ( kai = 0; kai <= 2; kai++ ) {
for ( heya = 0; heya <= 1; heya++ ) {
kotae[kai][heya] = a[kai][heya] + b[kai][heya]; printf("%d\t",kotae[kai][heya]); } printf("\n"); } }
Q10-2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h> main() { double a[3][3] = {{2.4,5.1,2.1},{1.9,3.3,1.7},{3.0,2.4,1.8}}; double b[3][3] = {{1.8,2.4,4.1},{5.4,3.8,2.8},{1.1,2.2,1.5}}; double kotae[3][3]; int kai,heya;for ( kai = 0; kai <= 2; kai++ ) {
for ( heya = 0; heya <= 2; heya++ ) {
kotae[kai][heya] = a[kai][heya] - b[kai][heya]; printf("%.1f\t",kotae[kai][heya]); } printf("\n"); } }
第10章
26
Q10-3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h> main() { int a[4][4],b[4][4],kotae[4][4]; int kai,heya; int m = 1,n = 50;for ( kai = 0; kai <= 2; kai++ ) {
for ( heya = 0; heya <= 3; heya++ ) {
a[kai][heya] = m; b[kai][heya] = n;
kotae[kai][heya] = a[kai][heya] + b[kai][heya]; printf("%d\t",kotae[kai][heya]); m = m + 2; n++; } printf("\n"); m = m + 2; n = n + 10; } }
Q10-4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<stdio.h> main() { int gyoretu[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; int kai,heya; printf("行列\n");for ( kai = 0; kai <= 2; kai++ ) {
for ( heya = 0; heya <= 2; heya++ ) { printf("%d\t",gyoretu[kai][heya]); } printf("\n"); } printf("を並び替えると\n"); for ( kai = 0; kai <= 2; kai++ ) {
for ( heya = 0; heya <= 2; heya++ ) { printf("%d\t",gyoretu[heya][kai]); } printf("\n"); } }
27
Q10-5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h> main() {int a[4][4], b[4][4], kotae[4][4];
int m = 1, n = 50, kisoku = 1, tyousei = 1; int kai,heya;
for ( kai = 0; kai <= 3; kai++ ) {
for ( heya = 0; heya <= 3; heya++ ) {
a[kai][heya] = m; b[kai][heya] = n;
kotae[kai][heya] = a[kai][heya] + b[kai][heya]; printf("%d\t",kotae[kai][heya]); m = m + kisoku; n = n - kisoku; } m = m - ( tyousei * kisoku ); n = n + ( tyousei * kisoku ); kisoku++; tyousei++; m = m + 10; n = n + 10; printf("\n"); } }
Q10-6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<stdio.h> main() { int gyoretu[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; int kai,heya; printf("行列\n");for ( kai = 0; kai <= 2; kai++ ) {
for ( heya = 0; heya <= 2; heya++ ) { printf("%d\t",gyoretu[kai][heya]); } printf("\n"); } printf("を並び替えると\n"); for ( kai = 2; kai >= 0; kai-- ) {
for ( heya = 2; heya >= 0; heya-- ) { printf("%d\t",gyoretu[heya][kai]); } printf("\n"); } }
28
Q10-7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<stdio.h> main() { double data[4][6] = { {44.0,43.8,44.8,42.8,43.9,0}, {37.5,39.2,38.3,37.7,37.9,0}, {41.3,42.1,41.6,41.8,40.9,0}, {0,0,0,0,0,0} }; int kai,heya;for ( kai = 0; kai <= 2; kai++ ) {
for ( heya = 0; heya <= 4; heya++ ) {
data[kai][5] = data[kai][5] + data[kai][heya]; }
}
for ( heya = 0; heya <= 5; heya++ ) {
for ( kai = 0; kai <= 2; kai++ ) {
data[3][heya] = data[3][heya] + data[kai][heya]; }
}
for ( kai = 0; kai <= 3; kai++ ) {
for ( heya = 0; heya <= 5; heya++ ) { printf("%.1f\t",data[kai][heya]); } printf("\n"); } }
29
Q10-8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h> main() { int a[4][4] = {{2,3,5,5},{4,1,4,4},{7,2,3,1},{2,2,5,8}}; int b[4][4] = {{4,2,7,4},{6,3,3,1},{1,4,5,5},{3,4,3,2}}; int kotae[4][4]; int kai,heya,seki;for ( kai = 0; kai <= 3; kai++ ) {
for ( heya = 0; heya <= 3; heya++ ) {
kotae[kai][heya] = 0;
for ( seki = 0; seki <= 3; seki++ ) {
kotae[kai][heya] = kotae[kai][heya] + a[kai][seki] * b[seki][heya]; } printf("%d\t",kotae[kai][heya]); } printf("\n"); } }
30
Q10-9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h> #include<math.h> main() { int zahyou[8][3] = {{1,3,2},{2,5,3},{3,4,3},{5,2,4},{2,3,3},{3,4,2},{4,4,1},{5,1,2}}; double kyori = 0.0; double saidai = 0.0; int kai,heya,stock;for ( kai = 0; kai <= 7; kai++ ) {
for ( heya = 0; heya <= 2; heya++ ) {
kyori = kyori + zahyou[kai][heya] * zahyou[kai][heya]; } kyori = sqrt(kyori); if ( saidai < kyori ) { saidai = kyori; stock = kai; } kyori = 0.0; } printf("原点から最も離れた点は%d,%d,%d",zahyou[stock][0],zahyou[stock][1],zahyou[stock][2]); printf("で距離は%f です",saidai); }
31
Q10-10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<stdio.h> #include<math.h> main() { int zahyou[8][3] = {{1,3,2},{2,5,3},{3,4,3},{5,2,4},{2,3,3},{3,4,2},{4,4,1},{5,1,2}}; double kyori = 0.0; double saidai = 0.0; int count1,count2,heya,stock1,stock2;for ( count1 = 0; count1 <= 6; count1++ ) {
for ( count2 = count1 + 1; count2 <= 7; count2++ ) {
for ( heya = 0; heya <= 2; heya++ ) {
kyori = kyori + pow(zahyou[count1][heya] - zahyou[count2][heya],2); } kyori = sqrt(kyori); if ( saidai < kyori ) { saidai = kyori; stock1 = count1; stock2 = count2; } kyori = 0.0; } } printf("最も離れた 2 点は%d,%d,%d",zahyou[stock1][0],zahyou[stock1][1],zahyou[stock1][2]); printf("と%d,%d,%d",zahyou[stock2][0],zahyou[stock2][1],zahyou[stock2][2]); printf("で距離は%f です",saidai); }
32
Q11-1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<stdio.h>double daikei(int a, int b, int c) { double d; d = ( a + b ) * c / 2.0; return d; } int main(void) { int joutei,katei,takasa; double menseki; printf("台形の面積を算出します\n 上底を入力して下さい"); scanf("%d",&joutei); printf("下底を入力して下さい"); scanf("%d",&katei); printf("高さを入力して下さい"); scanf("%d",&takasa);
menseki = daikei( joutei, katei, takasa );
printf("上底%d 下底%d 高さ%d の台形の面積は%.1f です",joutei,katei,takasa,menseki);
return 0; }
33
Q11-2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<stdio.h> #define PI 3.1415926535 double taiseki(int r) { double V; V = 4.0 / 3 * PI * r * r * r; return V; } double hyoumenseki(int r) { double S; S = 4 * PI * r * r; return S; } int main(void) { int hankei; double X,Y; printf("球の体積と表面積を算出します\n 半径を入力して下さい"); scanf("%d",&hankei); X = taiseki(hankei); Y = hyoumenseki(hankei); printf("半径%d の球の体積は%.10f で表面積は%.10f です",hankei,X,Y); return 0; }34
Q11-3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h> #include<math.h> #define PI 3.1415926535 double seigen(int kakudo) { double radian,kekka; radian = ( kakudo * PI ) / 180; kekka = sin(radian); return kekka; } int main(void) { int count; double kotae;for ( count = 0; count <= 90; count++ ) { kotae = seigen(count); printf("%d 度の時の正弦値は%.10f です\n",count,kotae); } return 0; }
35
Q11-4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h> int merusennu(int x) { int count; int kekka = 1;for(count = 1; count <= x; count++ ) { kekka = kekka * 2; } kekka = kekka - 1; return kekka; } int main(void) { int count,kotae; printf("メルセンヌ数を算出します\n"); for ( count = 1; count <= 31; count++ ) { kotae = merusennu(count); printf("%d\t",kotae); } return 0; }
36
Q11-5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<stdio.h> int merusennu(int x) { int count; int kekka = 1;for(count = 1; count <= x; count++ ) { kekka = kekka * 2; } return kekka; } int main(void) { int count1,count2,kotae; printf("フェルマー数を算出します\n"); for ( count1 = 1; count1 <= 4; count1++ ) {
for ( count2 = 1; count2 <= count1; count2++ ) { kotae = merusennu(count2); } kotae = merusennu(kotae); kotae = kotae + 1; printf("%d\t",kotae); } return 0; }
37
Q11-6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<stdio.h> double bunsu(double x) { double kekka; kekka = 2 + 1.0 / x; return kekka; } int main(void) { int count,nanjuu; double kotae = 1.0; printf("何重の分数を算出しますか"); scanf("%d",&nanjuu);for ( count = 1; count <= nanjuu; count++ ) { kotae = bunsu(kotae); } kotae--; printf("連分数の答えは%.10f です",kotae); return 0; }
38
Q11-7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<stdio.h>double bunsu(double kekka,int a) { if ( a >= 1 ) { kekka = 2 + 1.0 / kekka; a--; kekka = bunsu(kekka,a); return kekka; } else { return kekka; } } int main(void) { int count,nanjuu; double kotae = 1.0; printf("何重の分数を算出しますか"); scanf("%d",&nanjuu); kotae = bunsu(kotae,nanjuu); kotae--; printf("連分数の答えは%.10f です",kotae); return 0; }
39
Q11-8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<stdio.h>double sessen(double a,double b) { double x; x = -b / a; return x; } double yzahyou(double x) { double y,b,z; y = x * x - 5; b = y - 2 * x * x; z = sessen(2*x,b); return z; } int main(void) { double shokiti,stock; double sa = 1.0; int count; printf("初期値(x)を入力して下さい"); scanf("%lf",&shokiti); while ( sa >= 0.0000001 ) { stock = shokiti; shokiti = yzahyou(shokiti); sa = stock - shokiti; printf("%.14f\n",shokiti); } return 0; }