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

// から行末まで
x = 10.0; // 変数 x に 10.0 を代入
x = 10.0; /* 変数 x に 10.0 を代入 */
01 #include <stdio.h>
02 #include <math.h>
03 int main(){double a,b,c,d,x,x1,x2;
04 printf("係数a,b,及び,cは? ");scanf("%lf %lf %lf",&a,&b,&c);
05 if(fabs(a) <= 1.0e-10){
06 if(fabs(b) <= 1.0e-10)printf("解を求めることができません!\n");
07 else{x=-c/b;printf("x=%f\n",x);}}
08 else{d=b*b-4.0*a*c;
09 if(d >= 0.0){d=sqrt(d);x1=0.5*(-b-d)/a;x2=0.5*(-b+d)/a;
10 printf("x=%f %f\n",x1,x2);}
11 else{d=sqrt(-d);x1=-0.5*b/a;x2=0.5*d/a;
12 printf("x=%f ± i%f\n",x1,x2);}}return 0;}
01 /*********************************/
02 /* 二次方程式を解く */
03 /* a * x * x + b * x + c = 0 */
04 /* coded by Y.Suganuma */
05 /*********************************/
06 #include <stdio.h>
07 #include <math.h>
08
09 int main()
10 {
11 double a, b, c, d, x, x1, x2;
12 /*
13 係数の読み込み
14 */
15 printf("係数a,b,及び,cは? ");
16 scanf("%lf %lf %lf",&a,&b,&c);
17 /*
18 一次方程式
19 */
20 if (fabs(a) <= 1.0e-10) {
21 if (fabs(b) <= 1.0e-10)
22 printf(" 解を求めることができません!\n");
23 else {
24 x = -c / b;
25 printf(" x=%f\n",x);
26 }
27 }
28 /*
29 二次方程式
30 */
31 else {
32
33 d = b * b - 4.0 * a * c;
34 // 2実根
35 if (d >= 0.0) {
36 d = sqrt(d);
37 x1 = 0.5 * (-b - d) / a;
38 x2 = 0.5 * (-b + d) / a;
39 printf(" x=%f %f\n",x1,x2);
40 }
41 // 虚数
42 else {
43 d = sqrt(-d);
44 x1 = -0.5 * b / a;
45 x2 = 0.5 * d / a;
46 printf(" x=%f ± i%f\n",x1,x2);
47 }
48 }
49
50 return 0;
51 }
データ型 変数名1[= 初期値], 変数名2[= 初期値], ・・・;
型名 バイト数 値の範囲 void * * char 1 -128 〜 127 unsigned char 1 0 〜 255 short 2 -32,768 〜 32,767 unsigned short 2 0 〜 65,535 int * システム依存 unsigned int * システム依存 long int 4 -2,147,483,648 〜 2,147,483,647 unsigned long 4 0 〜 4,294,967,295 long long int 8 -9,223,372,036,854,775,808 〜 9,223,372,036,854,775,807 float 4 3.4E±38(7 桁) double 8 1.7E±308(15 桁)
double x = 10.5, y = -4.5;
int abc, _bef; // 正.複数の変数をカンマで区切って並べることが可能 double abc, _bef = 3.5; // 正.変数 _bef に対しては初期設定を行っている int a, A; // 正.変数 a と A は異なる int a, abc, a; // 誤.同じ変数を 2 度定義してはいけない int if; // 誤.キーワードは変数名として使用できない int 10a; // 誤.変数名の最初は,英字または下線 int a+10; // 誤.変数名に使用できるのは,英数字と下線だけ int a = 3.5; // 誤.int 型の変数の初期値として不適当
・・・ x = 10.0; double y = x + 5.0; ・・・
for (int k = 0; k < 10; k++) {
・・・
・・・
}
enum coltype {red, blue, black, white} color;
color = blue; /* 変数 color に青を代入 */ if (color == red) /* もし,色が赤ならば */
enum coltype {red, blue, black=5, white} color;
red : 0, bulue : 1, black : 5, white : 6
enum [列挙型名] [{列挙定数リスト}] [変数リスト];
enum coltype {red, blue, black, white};
enum coltype color;
typedef 既存のデータ型 同義語名
typedef int word;
word x;
| 演算 | 説明 |
|---|---|
| 7 / 3 * 3 | 7 / 3 * 3 = 2 * 2 = 6 |
| 7 / (3 * 3) | 7 / (3 * 3) = 7 / 9 = 0 |
| 7 / 3 / 3 | 7 / 3 / 3 = 2 / 3 = 0 |
data = 10.0 / 4.0 * 2.0; i_data = 10 / 4 * 2;
x = 10.0 / 4.0;
k = 2; k = k + 3;
k += 3;
x = y = z = 20.4;
int x = 5, y; x = 3; x *= 5; y = x + 2;
x = y + 5;
k++; n = 3 + m++;
k = k + 1;
n = 3 + m; m = m + 1;
n = 3 + ++m;
m = m + 1; n = 3 + m;
10.0 / 4;
char < int < long < float < double < ・・・
db = 10 / 3; k = 10.0 / 4.0;
db1 = 10.4; db2 = (double)((int)db1 / 4)
| 演算 | 説明 |
|---|---|
| (double)(7 / 2) | (double)(7 / 2) = (double)3 = 3.0 |
| 7 / (double)2 | 7 / (double)2 = 7 / 2.0 = 7.0 / 2.0 = 3.5 |
| 7 / 2.0 | 7 / 2.0 = 7.0 / 2.0 = 3.5 |
| 7 / 2 | 3 |
01 /****************************/
02 /* 2つのデータの和と差 */
03 /* coded by Y.Suganuma */
04 /****************************/
05 #include <stdio.h>
06
07 int main()
08 {
09 double sa, wa, x, y;
10 /*
11 データの入力
12 */
13 printf("2つのデータを入力して下さい ");
14 scanf("%lf %lf", &x, &y);
15 /*
16 和と差の計算
17 */
18 wa = x + y;
19 sa = x - y;
20 /*
21 結果の出力
22 */
23 printf("和は=%f 差は=%f\n", wa, sa);
24
25 return 0;
26 }
double d_data;
int i_data;
char c_data[10];
scanf("%lf %d %s", &d_data, &i_data, c_data);
3.14 123 abcのように入力すると,d_data に「3.14」が double 型に変換され,i_data に「123」が int 型に変換され,また,c_data に文字列「abc」が,記憶されます.各変数に対して,そのアドレスを指定しなければならない(アドレスについては,後の章で説明します.ここでは,変数に「&」記号が付くという程度で理解しておいてください)点に注意してください.
double d_data;
int i_data;
char c_data[10];
・・・・・
printf("結果は %f %10.3f %d %5d %s\n", d_data, d_data, i_data, i_data, c_data);
scanf("%lf", &sa);
sa = 20;
和は=8.000000 差は=2.000000
using namespace std;
01 /****************************/
02 /* 2つのデータの和と差 */
03 /* coded by Y.Suganuma */
04 /****************************/
05 #include <iostream>
06
07 int main()
08 {
09 double sa, wa, x, y;
10 /*
11 データの入力
12 */
13 std::cout << "2つのデータを入力して下さい ";
14 std::cin >> x >> y;
15 /*
16 和と差の計算
17 */
18 wa = x + y;
19 sa = x - y;
20 /*
21 結果の出力
22 */
23 std::cout << "和は=" << wa << " 差は=" << sa << std::endl;
24
25 return 0;
26 }
| 実行順序 | プログラム | x の値 | y の値 |
|---|---|---|---|
| 1 | int x, y = 10; | - | 10 |
| 2 | scanf("%d", &y); | - | 5 |
| 3 | x = y + 3; | 8 | 5 |
| 4 | x *= 5; | 40 | 5 |
| 5 | printf("%d\n", x); | 40 | 5 |
auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while (C++) asm catch class delete friend inline new operator private protected public template this throw try virtual
ASCII/JIS コードテーブル (0〜127)
000 ^@ (nul) 016 ^P (dle) 032 (sp) 048 0 064 @ 080 P 096 ` 112 p
001 ^A (soh) 017 ^Q (dc1) 033 ! 049 1 065 A 081 Q 097 a 113 q
002 ^B (stx) 018 ^R (dc2) 034 " 050 2 066 B 082 R 098 b 114 r
003 ^C (etx) 019 ^S (dc3) 035 # 051 3 067 C 083 S 099 c 115 s
004 ^D (eot) 020 ^T (dc4) 036 $ 052 4 068 D 084 T 100 d 116 t
005 ^E (enq) 021 ^U (nak) 037 % 053 5 069 E 085 U 101 e 117 u
006 ^F (ack) 022 ^V (syn) 038 & 054 6 070 F 086 V 102 f 118 v
007 ^G (bel) 023 ^W (etb) 039 ' 055 7 071 G 087 W 103 g 119 w
008 ^H (bs) 024 ^X (can) 040 ( 056 8 072 H 088 X 104 h 120 x
009 ^I (tab) 025 ^Y (em) 041 ) 057 9 073 I 089 Y 105 i 121 y
010 ^J (lf) 026 ^Z (eof) 042 * 058 : 074 J 090 Z 106 j 122 z
011 ^K (vt) 027 ^[ (esc) 043 + 059 ; 075 K 091 [ 107 k 123 {
012 ^L (np) 028 ^\ (fs) 044 , 060 < 076 L 092 \ 108 l 124 |
013 ^M (cr) 029 ^] (gs) 045 - 061 = 077 M 093 ] 109 m 125 }
014 ^N (so) 030 ^^ (rs) 046 . 062 > 078 N 094 ^ 110 n 126 ~
015 ^O (si) 031 ^_ (us) 047 / 063 ? 079 O 095 _ 111 o 127
Seq. 名前 Seq. 名前 \a ベル \? リテラル クオーテーション \b バック スペース \' シングル クォーテーション \f 改ページ \" ダブル クォーテーション \n 復改 \\ 円記号 \r 改行 \ddd 8進表記による ASCII 文字 \t 水平タブ \xdd 16進表記による ASCII 文字 \v 垂直タブ
| 静岡理工科大学 | 総合情報学部 (by 菅沼) | 菅沼ホーム | 目次 | 演習解答例 | 付録 | 索引 |