- [練習 1]
- 以下の1文を表示する。
Hello World !!
1 #include <stdio.h>
2
3 int main(){
4
5 printf("Hello World !!\n");
6
7 return 0;
8 }
- [練習 2]
- 以下の2行をを表示する。
Hello World !!
from Akita National College of Technology.
1 #include <stdio.h>
2
3 int main(){
4
5 printf("Hello World !!\n");
6 printf("from Akita National College of Technology.\n");
7
8 return 0;
9 }
- [練習 3]
- 2つの整数をキーボードから読み込んで、和と差、積を表示する。
1 #include <stdio.h>
2
3 int main(){
4
5 int i,j;
6
7 /* --- 入力のメッセージと整数入力--- */
8 printf("最初の整数?\t");
9 scanf("%d",&i);
10 printf("次の整数?\t");
11 scanf("%d",&j);
12
13 /* --- 計算と表示 ---*/
14 printf("%d+%d=%d\n",i,j,i+j);
15 printf("%d-%d=%d\n",i,j,i-j);
16 printf("%d*%d=%d\n",i,j,i*j);
17
18 return 0;
19 }
- [練習 4]
- 2つの整数をキーボードから読み込んで、商と余りを表示する。
1 #include <stdio.h>
2
3 int main(){
4
5 int i,j;
6
7 /* --- 入力のメッセージと整数入力--- */
8 printf("最初の整数?\t");
9 scanf("%d",&i);
10 printf("次の整数?\t");
11 scanf("%d",&j);
12
13
14 /* --- 計算と表示 ---*/
15 printf("%d/%d=\n",i,j);
16 printf("\t商\t%d\n",i/j);
17 printf("\t余り\t%d\n",i%j);
18
19 return 0;
20 }
- [練習 5]
- 2つの実数をキーボードから読み込んで、和と差、積、商を表示する。
1 #include <stdio.h>
2
3 int main(){
4
5 double x, y;
6
7 /* --- 入力のメッセージと整数入力--- */
8 printf("最初の実数?\t");
9 scanf("%lf",&x);
10 printf("次の実数?\t");
11 scanf("%lf",&y);
12
13 /* --- 計算と表示 ---*/
14 printf("%f+%f=%f\n",x,y,x+y);
15 printf("%f-%f=%f\n",x,y,x-y);
16 printf("%f*%f=%f\n",x,y,x*y);
17 printf("%f/%f=%f\n",x,y,x/y);
18
19 return 0;
20 }
- [練習 6]
- 角度[deg]を読み込んで、それをラジアンに直して、
表示する。
1 #include <stdio.h>
2
3 int main(){
4
5 double rad, deg;
6
7 /* --- 入力のメッセージと整数入力--- */
8 printf("角度 [deg]?\t");
9 scanf("%lf",°);
10
11 /* --- 計算と表示 ---*/
12 rad=deg/180.0*3.14159265;
13 printf("%f [rad]\n",rad);
14
15 return 0;
16 }
- [練習 7]
- 角度[deg]を読み込んで、角度と三角関数の値を表示する。
1 #include <stdio.h>
2 #include <math.h>
3
4 int main(){
5
6 double rad, deg;
7
8 /* --- 入力のメッセージと整数入力--- */
9 printf("角度 [deg]?\t");
10 scanf("%lf",°);
11
12 /* --- 計算と表示 ---*/
13 rad=deg/180.0*3.14159265;
14 printf("sin = %f\n",sin(rad));
15 printf("cos = %f\n",cos(rad));
16 printf("tan = %f\n",tan(rad));
17
18 return 0;
19 }
- [練習 1]
- ifとgoto文を使って、1〜1000までの整数の合計を求める。
1 #include <stdio.h>
2
3 int main(){
4
5 int i, sum;
6
7 /*--- 初期化 ---*/
8 sum=0;
9 i=1;
10
11 loop: /* ラベル */
12 sum+=i; /* sum=sum+i */
13 i++; /* iのインクリメント */
14 if(i<=1000)goto loop;
15
16 printf("sum = %d\n",sum);
17
18 return 0;
19 }
- [練習 2]
- for文を使って、1〜1000までの整数の合計を求める。
1 #include <stdio.h>
2
3 int main(){
4
5 int i, sum;
6
7 /*--- 初期化 ---*/
8 sum=0;
9
10 for(i=1; i<=1000; i++){
11 sum+=i; /* sum=sum+i */
12 }
13
14 printf("sum = %d\n",sum);
15
16 return 0;
17 }
- [練習 3]
- while文を使って、1〜1000までの整数の合計を求める。
1 #include <stdio.h>
2
3 int main(){
4
5 int i, sum;
6
7 /*--- 初期化 ---*/
8 sum=0;
9 i=1;
10
11 while(i<=1000){
12 sum+=i; /* sum=sum+i */
13 i++;
14 }
15
16 printf("sum = %d\n",sum);
17
18 return 0;
19 }
- [練習 4]
- do〜while文を使って、1〜1000までの整数の合計を求める。
1 #include <stdio.h>
2
3 int main(){
4
5 int i, sum;
6
7 /*--- 初期化 ---*/
8 sum=0;
9 i=1;
10
11 do{
12 sum+=i; /* sum=sum+i */
13 i++;
14 }while(i<=1000);
15
16 printf("sum = %d\n",sum);
17
18 return 0;
19 }
- [練習 5]
- 1〜100000までの素数を全て書き出す
1 #include <stdio.h>
2 #include <math.h>
3 #define TEST 100000
4
5 int main(void){
6 int number[TEST+1];
7 int i,j,test_max;
8
9 /*---- 初期化 ----*/
10 for(i=1;i<=TEST;i++){ /* number[i]=0 iは素数 */
11 number[i]=0; /* number[i]=1 iは素数でない */
12 }
13
14 /*---- 素数判定(エラトステネスのふるい) ----*/
15 test_max=(int)sqrt(TEST);
16 for(i=2;i<=test_max;i++){
17 if(number[i]==0){
18 for(j=2*i; j<=TEST; j+=i){
19 number[j]=1;
20 }
21 }
22 }
23
24 /*---- 結果表示 ----*/
25 j=0;
26 printf("No\tPrime Number\n");
27
28 for(i=2;i<=TEST;i++){
29 if(number[i]==0){
30 j++;
31 printf("%d\t%d\n",j, i);
32 }
33 }
34
35
36 return 0;
37 }
- [練習 1]
- ファイルに、0〜360度の三角関数の値を書き込むプログラムを作成
する。ファイルの各行には、角度[deg]と
、
,
の値をタブ区切りで書くものとする。
1 #include <stdio.h>
2 #include <math.h>
3
4 int main(){
5
6 int theta;
7 double rad, s, c, t;
8 FILE *fp;
9
10 fp=fopen("triangle_table.txt","w"); /* ファイルのオープン */
11
12 for(theta=0; theta<=360; theta++){
13 rad=theta/180.0*3.1415926; /* 度からラジアンへ */
14
15 s=sin(rad); /* 三角関数の計算 */
16 c=cos(rad);
17 t=tan(rad);
18
19 fprintf(fp,"%d\t%f\t%f\t%f\n", theta, s, c, t); /* 書き込み */
20 }
21
22 fclose(fp); /* ファイルのクローズ */
23
24 return 0;
25 }
- [練習 2]
- 前問で作成したファイルを読み込み、ディスプレイに表示するプロ
グラムを作成せよ。
1 #include <stdio.h>
2
3 int main(){
4
5 int theta;
6 double s, c, t;
7 FILE *fp;
8
9 /* --- ファイルのオープン(読み込みモード) --- */
10 fp=fopen("triangle_table.txt","r");
11
12 /* --- ファイルの読み込みと表示 --- */
13 while(fscanf(fp, "%d%lf%lf%lf", &theta, &s, &c, &t) != EOF){
14 printf("%d\t%f\t%f\t%f\n", theta, s, c, t); /* 表示 */
15 }
16
17 fclose(fp); /* ファイルのクローズ */
18
19 return 0;
20 }
- [練習 1]
- 整数型の変数、a, b, cに入っている整数を、
a
b、b
c、
c
aと入れ替えるプログラムを作成せよ。
1 #include <stdio.h>
2
3 int rot(int *x, int *y, int *z);
4 /* ========================================================= */
5 /* main 関数 */
6 /* ========================================================= */
7 int main(){
8
9 int a, b, c;
10
11 a=1;
12 b=2;
13 c=3;
14
15 printf("a=%d\tb=%d\tc=%d\n", a, b, c);
16
17 rot(&a, &b, &c); /* 入れ替えの関数 */
18
19 printf("a=%d\tb=%d\tc=%d\n", a, b, c);
20
21
22 return 0;
23 }
24
25
26 /* ========================================================= */
27 /* 値をサイクリックに入れ替える */
28 /* ========================================================= */
29 int rot(int *x, int *y, int *z){
30 int temp;
31
32 temp=*z;
33
34 *z = *y;
35 *y = *x;
36 *x = temp;
37
38 return 0;
39 }
- [練習 2]
- 要素数が100100の2次元配列にa[i][j]=i*i+jの値を代
入する。そして、a[i][j]とa[j][i]と入れ替えるプログ
ラムを作成せよ。
1 #include <stdio.h>
2 #define N 100
3
4 int tranpose(int matrix[][N]);
5 /* ========================================================= */
6 /* main 関数 */
7 /* ========================================================= */
8 int main(){
9
10 int i, j, matrix[N][N];
11
12 for(i=0; i<N; i++){
13 for(j=0; j<N; j++){
14 matrix[i][j] = i*i+j;
15 }
16 }
17
18 tranpose(matrix);
19
20 return 0;
21 }
22
23
24 /* ========================================================= */
25 /* 値をサイクリックに入れ替える */
26 /* ========================================================= */
27 int tranpose(int a[][N]){
28 int i, j, temp;
29
30 for(i=0; i<N; i++){
31 for(j=i+1; j<N; j++){
32 temp=a[i][j];
33 a[i][j]=a[j][i];
34 a[j][i]=temp;
35 }
36 }
37
38 return 0;
39 }