| 静岡理工科大学 | 総合情報学部 (by 菅沼) | 菅沼ホーム | 目次 | 演習解答例 | 付録 | 索引 |

if (論理式) {
文1(複数の文も可)
}
else {
文2(複数の文も可)
}
・・・・・・
if (論理式1) {
・・・・・・
if (論理式2) {
・・・・・・
}
else {
・・・・・・
}
・・・・・・
}
else {
・・・・・・
}
01 if (a == b) {
02 max = y;
03 min = z;
04 if (min < 0.0) {
05 min = 0.0;
06 a = b;
07 }
08 }
09 else {
10 max = s;
11 min = g;
12 }
13 x = 9;
14 y = 10;
01 /******************************/
02 /* 円周と面積の計算 */
03 /* coded by Y.Suganuma */
04 /******************************/
05 #include <stdio.h>
06
07 int main()
08 {
09 double pi, r, enshu, men;
10 /*
11 πの値
12 */
13 pi = 3.141593;
14 /*
15 半径の入力
16 */
17 printf("円の半径は? ");
18 scanf("%lf", &r);
19 /*
20 計算と出力
21 */
22 if (r > 0.0) {
23 enshu = 2.0 * pi * r;
24 men = pi * r * r;
25 printf("円周=%f 面積=%f\n", enshu, men);
26 }
27
28 return 0;
29 }
/****************************/
/* 坪とuの間の単位変換 */
/* coded by Y.Suganuma */
/****************************/
#include <stdio.h>
int main()
{
double x, y;
int sw;
/*
データの入力
*/
printf("変換方向(0:坪→u,1:u→坪)は? ");
scanf("%d", &sw);
printf("変換するデータは? ");
scanf("%lf", &x);
/*
変換と出力
*/
if (sw == 0) { /* 坪からu */
y = 3.3 * x;
printf(" xは %f u", y);
}
else { /* uから坪 */
y = x / 3.3;
printf(" xは %f 坪", y);
}
return 0;
}
if (式1) {
if (式2)
文1;
}
else
文2;
if (式1) if (式2) 文1; else 文2;
if (式1) if (式2) 文1; else 文2;
if (a > b && c > a) {
amax = c;
amin = b;
}
if (a > b && c < b) {
amax = a;
amin = c;
}
・・・・・
01 /**************************************/
02 /* 3つのデータの最大値と最小値の計算 */
03 /* coded by Y.Suganuma */
04 /**************************************/
05 #include <stdio.h>
06
07 int main()
08 {
09 double a, b, c, amin, amax;
10 /*
11 データの入力
12 */
13 printf("3つのデータを入力して下さい ");
14 scanf("%lf %lf %lf", &a, &b, &c);
15 /*
16 a>bの場合
17 */
18 if (a > b) {
19 if (c > a) {
20 amax = c;
21 amin = b;
22 }
23 else {
24 amax = a;
25 if (c < b)
26 amin = c;
27 else
28 amin = b;
29 }
30 }
31 /*
32 a≦bの場合
33 */
34 else {
35 if (c > b) {
36 amax = c;
37 amin = a;
38 }
39 else {
40 amax = b;
41 if (c < a)
42 amin = c;
43 else
44 amin = a;
45 }
46 }
47 /*
48 出力
49 */
50 printf("最大値=%f 最小値=%f\n", amax, amin);
51
52 return 0;
53 }
#include <stdio.h>
int main()
{
double a, b, c, amin, amax;
/*
データの入力
*/
printf("3つのデータを入力して下さい ");
scanf("%lf %lf %lf", &a, &b, &c);
/*
初期設定
*/
amax = a;
amin = a;
/*
残りの2つのデータと比較する
*/
if (b > amax)
amax = b;
else {
if (b < amin)
amin = b;
}
if (c > amax)
amax = c;
else {
if (c < amin)
amin = c;
}
/*
出力
*/
printf("最大値=%f 最小値=%f\n", amax, amin);
return 0;
}
/****************************/
/* データの比較 */
/* coded by Y.Suganuma */
/****************************/
#include <stdio.h>
int main()
{
int x = 10, y = 20, z = 30;
int data;
/*
データの入力
*/
printf("データを入力して下さい ");
scanf("%d", &data);
/*
判定と出力
*/
if (data == x)
printf("xと等しい\n");
else {
if (data == y)
printf("yと等しい\n");
else {
if (data == z)
printf("zと等しい\n");
else
printf("いずれとも等しくない\n");
}
}
return 0;
}
/****************************/
/* データの比較 */
/* coded by Y.Suganuma */
/****************************/
#include <stdio.h>
int main()
{
int x = 10, y = 20, z = 30;
int data;
/*
データの入力
*/
printf("データを入力して下さい ");
scanf("%d", &data);
/*
判定と出力
*/
if (data == x)
printf("xと等しい\n");
else if (data == y)
printf("yと等しい\n");
else if (data == z)
printf("zと等しい\n");
else
printf("いずれとも等しくない\n");
return 0;
}
switch (式) {
[case 定数式1 :]
[文1]
[case 定数式2 :]
[文2]
・・・・・
[default :]
[文n]
}
switch (data) {
case x :
printf("xと等しい\n");
break;
case y :
printf("yと等しい\n");
break;
case z :
printf("zと等しい\n");
break;
default :
printf("いずれとも等しくない\n");
}
/****************************/
/* データの比較 */
/* coded by Y.Suganuma */
/****************************/
#include <stdio.h>
int main()
{
int x = 10, y = 20, z = 30;
int data, sw;
/*
データの入力と判定準備
*/
printf("データを入力して下さい ");
scanf("%d", &data);
if (data == x)
sw = 0;
else {
if (data == y)
sw = 1;
else
sw = (data == z) ? 2 : 3;
}
/*
判定と出力
*/
switch (sw) {
case 0 :
printf("xと等しい\n");
break;
case 1 :
printf("yと等しい\n");
break;
case 2 :
printf("zと等しい\n");
break;
default :
printf("いずれとも等しくない\n");
}
return 0;
}
goto ラベル; ・・・ ラベル: ・・・ ・・・
/**********************************/
/* 正しいデータの再入力(goto文) */
/* coded by Y.Suganuma */
/**********************************/
#include <stdio.h>
int main()
{
int x,y;
again: printf("2つの正のデータを入力して下さい ");
scanf("%d %d",&x,&y);
if (x < 0 || y < 0) /* いずれかが負 */
goto again;
else /* 両方とも正 */
printf("和は=%d\n",x+y);
return 0;
}
#include <stdio.h>
int main()
{
double data;
double sum = 0.0;
scanf("%lf",&data);
sum += data;
scanf("%lf",&data);
sum += data;
scanf("%lf",&data);
sum += data;
scanf("%lf",&data);
sum += data;
scanf("%lf",&data);
sum += data;
printf("和=%f\n",sum);
return 0;
}
#include <stdio.h>
int main()
{
double data;
double sum = 0.0;
int i1;
for (i1 = 0; i1 < 5; i1++) {
scanf("%lf",&data);
sum += data;
}
printf("和=%f\n",sum);
return 0;
}
for (式1; 式2; 式3) {
文(複数の文も可)
}
・・・・・
<while文>
while (式) {
文(複数の文も可)
}
・・・・・
<do-while文>
do {
文(複数の文も可)
} while (式) ;
・・・・・
式1;
while (式2) {
文(複数の文も可)
式3;
}
for (式1; 式2; 式3) {
・・・・・
for (式4; 式5; 式6) {
・・・・・
}
・・・・・
}
for (i1 = 0; i1 < 10; i1 = i1+1) {
a = b + c;
for (i2 = 0; i2 < 5; i2 = i2+1) {
bcd = a / y;
aa = b;
・・・・・・・・
}
sum = c + d;
}
01 /****************************/
02 /* 平均値の計算 */
03 /* coded by Y.Suganuma */
04 /****************************/
05 #include <stdio.h>
06
07 int main()
08 {
09 double mean1, mean2, sum1, sum2, x, y;
10 int n, i1;
11 /*
12 初期設定
13 */
14 sum1 = 0.0;
15 sum2 = 0.0;
16 /*
17 データの数の読み込み
18 */
19 printf("人数は? ");
20 scanf("%d", &n);
21 /*
22 データの読み込み
23 */
24 for (i1 = 0; i1 < n; i1++) {
25 printf("英語と数学の点は? ");
26 scanf("%lf %lf", &x, &y);
27 sum1 += x;
28 sum2 += y;
29 }
30 /*
31 結果の計算と出力
32 */
33 if (n <= 0) /* 0で割るのを防ぐ */
34 printf("データがない!\n");
35 else {
36 mean1 = sum1 / n;
37 mean2 = sum2 / n;
38 printf(" 英語=%f 数学=%f\n", mean1, mean2);
39 }
40
41 return 0;
42 }
01 /****************************/
02 /* 平均値の計算 */
03 /* coded by Y.Suganuma */
04 /****************************/
05 #include <stdio.h>
06
07 int main()
08 {
09 double mean1, mean2, sum1, sum2, x, y;
10 int n, i1;
11 /*
12 初期設定
13 */
14 sum1 = 0.0;
15 sum2 = 0.0;
16 /*
17 データの数の読み込み
18 */
19 printf("人数は? ");
20 scanf("%d", &n);
21 /*
22 データの読み込み
23 */
24 i1 = 0;
25
26 while (i1 < n) {
27 printf("英語と数学の点は? ");
28 scanf("%lf %lf", &x, &y);
29 sum1 += x;
30 sum2 += y;
31 i1++;
32 }
33 /*
34 結果の計算と出力
35 */
36 if (n <= 0)
37 printf("データがない!\n");
38 else {
39 mean1 = sum1 / n;
40 mean2 = sum2 / n;
41 printf(" 英語=%f 数学=%f\n", mean1, mean2);
42 }
43
44 return 0;
45 }
01 /************************************/
02 /* ファイル入出力(平均値の計算後) */
03 /* coded by Y.Suganuma */
04 /************************************/
05 #include <stdio.h>
06
07 int main()
08 {
09 double mean1, mean2, sum1, sum2, x, y;
10 int n;
11 FILE *in, *out;
12 /*
13 初期設定
14 */
15 sum1 = 0.0;
16 sum2 = 0.0;
17 n = 0;
18 /*
19 データの読み込み
20 */
21 in = fopen("input","r");
22
23 while (EOF != fscanf(in,"%lf %lf",&x,&y)) {
24 sum1 += x;
25 sum2 += y;
26 n++;
27 }
28
29 fclose(in);
30 /*
31 結果の計算と出力
32 */
33 if (n <= 0)
34 printf("データがない!\n");
35 else {
36 out = fopen("output", "w");
37 mean1 = sum1 / n;
38 mean2 = sum2 / n;
39 fprintf(out, "人数 %d 英語=%f 数学=%f\n", n, mean1, mean2);
40 fclose(out);
41 }
42
43 return 0;
44 }
/************************************/
/* ファイル入出力(平均値の計算後) */
/* coded by Y.Suganuma */
/************************************/
#include <iostream>
#include <fstream>
int main()
{
double mean1, mean2, sum1, sum2, x, y;
int n;
/*
初期設定
*/
sum1 = 0.0;
sum2 = 0.0;
n = 0;
/*
データの読み込み
*/
std::ifstream in("input");
while (!in.eof()) {
in >> x >> y;
sum1 += x;
sum2 += y;
n++;
}
in.close();
/*
結果の計算と出力
*/
if (n <= 0)
std::cout << "データがない!\n";
else {
std::ofstream out("output");
mean1 = sum1 / n;
mean2 = sum2 / n;
out << "人数 " << n << " 英語=" << mean1 << " 数学=" << mean2 << std::endl;
out.close();
}
return 0;
}
01 /************************************/
02 /* クラス平均と最も良いクラスの出力 */
03 /* coded by Y.Suganuma */
04 /************************************/
05 #include <stdio.h>
06
07 int main()
08 {
09 double mean, max, x;
10 int i1, i2, max_c, n, m;
11 /*
12 データの入力と平均値の計算
13 */
14 printf("クラスの数は? ");
15 scanf("%d", &n);
16
17 for (i1 = 0; i1 < n; i1++) { /* クラスの数だけ繰り返す */
18
19 printf("%d 番目のクラスの人数は ", i1+1);
20 scanf("%d", &m);
21
22 mean = 0.0; /* この初期設定はここで必要 */
24
24 for (i2 = 0; i2 < m; i2++) { /* クラスの人数だけ繰り返す */
25 printf(" %d 番目の人の点は? ", i2+1);
26 scanf("%lf", &x);
27 mean += x;
28 }
29
30 mean /= m;
31
32 if (i1 == 0 || mean > max) {
33 max = mean;
34 max_c = i1 + 1;
35 }
36 }
37 /*
38 結果の出力
39 */
40 printf("最大平均値はクラス %d の %f 点\n", max_c, max);
41
42 return 0;
43 }
/*************************************/
/* 正しいデータの再入力(do-while文)*/
/* coded by Y.Suganuma */
/*************************************/
#include <stdio.h>
int main()
{
int x, y;
do {
printf("2つの正のデータを入力して下さい ");
scanf("%d %d", &x, &y);
} while (x < 0 || y < 0);
printf("和は=%d\n", x+y);
return 0;
}
/****************************/
/* 最大値の計算 */
/* coded by Y.Suganuma */
/****************************/
#include <stdio.h>
int main()
{
int n = 5, i1, max = 0, x;
for (i1 = 0; i1 < n; i1++) {
printf("データを入力してください ");
scanf("%d", &x);
if (x > max)
max = x;
}
printf(" 最大値=%d\n", max);
return 0;
}
int main()
{
int n = 5, i1, max = 0, x;
printf("データを入力してください ");
scanf("%d", &max); /* 最初のデータでmaxを初期化 */
for (i1 = 1; i1 < n; i1++) { /* i1を1から始める */
printf("データを入力してください ");
scanf("%d", &x);
if (x > max)
max = x;
}
printf(" 最大値=%d\n", max);
return 0;
}
if (x < 0 && x > max)
int main()
{
int n = 5, i1, max, sw = 0, x; /* maxに対する初期設定は不要 */
for (i1 = 0; i1 < n; i1++) {
printf("データを入力してください ");
scanf("%d", &x);
if (x < 0 && (sw == 0 || x > max)) {
max = x;
sw = 1;
}
}
printf(" 最大値=%d\n", max);
return 0;
}
/**********************************/
/* データの和(負のデータで終了) */
/* coded by Y.Suganuma */
/**********************************/
#include <stdio.h>
int main()
{
int i1, n, x, sum = 0;
/*
データ数の入力
*/
printf("データ数は? ");
scanf("%d", &n);
/*
和の計算
*/
for (i1 = 0; i1 < n; i1++) {
printf(" データを入力して下さい ");
scanf("%d", &x);
if (x < 0)
break;
else
sum += x;
}
/*
出力
*/
printf("和=%d\n", sum);
return 0;
}
#include <stdio.h>
int main()
{
int i1, n, x = 0, sum = 0;
/*
データ数の入力
*/
printf("データ数は? ");
scanf("%d", &n);
/*
和の計算
*/
for (i1 = 0; i1 < n && x >= 0; i1++) {
printf(" データを入力して下さい ");
scanf("%d", &x);
if (x >= 0)
sum += x;
}
/*
出力
*/
printf("和=%d\n", sum);
return 0;
}
/**********************************/
/* データの和(負のデータを除外) */
/* coded by Y.Suganuma */
/**********************************/
#include <stdio.h>
int main()
{
int i1, n, x, sum = 0;
/*
データ数の入力
*/
printf("データ数は? ");
scanf("%d", &n);
/*
和の計算
*/
for (i1 = 0; i1 < n; i1++) {
printf(" データを入力して下さい ");
scanf("%d", &x);
if (x < 0)
continue;
sum += x;
}
/*
出力
*/
printf("和=%d\n", sum);
return 0;
}
| 静岡理工科大学 | 総合情報学部 (by 菅沼) | 菅沼ホーム | 目次 | 演習解答例 | 付録 | 索引 |