C言語講座第6回 ~演習回 演習1 int型の半径rを手入力させてそこから円の円周、 面積、球の体積を関数を使って求めるプログラム を作成せよ。 なお、関数の型はdouble型とし、出力結果は小数 点以下2桁での表示とする。 #define P 3.14 演習1解答 演習2 配列を作り、大きい順に並び替えるバブルソート プログラムをつくりなさい int n1=5, data1[]={5,2,1,4,3}; int n2=9, data2[]={5,2,1,4,3,9,6,7,8}; 演習2解答 #include <stdio.h> void print_array(int v[],int n); void bsort(int v[],int n); int main(){ int n1=5, data1[]={5,2,1,4,3}; int n2=9, data2[]={5,2,1,4,3,9,6,7,8}; } printf("\n"); } void bsort(int v[],int n){ int i,j,tmp; for(j=0;j<n-1;j++){ for(i=n-2; j<=i ;i--){ if(v[i]<v[i+1]){ printf("元の配列\n"); print_array(data1,n1); print_array(data2,n2); printf("ソートします.....\n"); bsort(data1,n1); bsort(data2,n2); print_array(data1,n1); print_array(data2,n2); tmp=v[i+1]; v[i+1]=v[i]; v[i]=tmp; } } void print_array(int v[],int n){ int i; for(i=0;i<n;i++){ printf("%d ",v[i]); } } } 演習2解答 演習3 ユークリッドの互除法を用いて任意に入力された 2つの値の最大公約数を求めよ 15と9の最大公約数は3であるがこれをユークリッドの互除法で求めると 15 ÷ 9 の余りは6 割る数(9)を余り(6)で割る 9 ÷ 6の余りは3 割る数(6)を余り(3)で割る 6 ÷ 3の余りは0 余りが0になった時の割る数(3)が最大公約数 演習3解答 #include <stdio.h> c = a % b; void input(int *a, int *b){ int tmp; if(c == 0) return b; else >"); >"); return calcEuclid(b, c); printf("一つ目の値を入力してください scanf("%d",a); printf("二つ目の値を入力してください scanf("%d",b); } int main(){ int a, b; input(&a, &b); printf("%dと%dの最大公約数は%d\n“ , a, b, calcEuclid(a, b)); if(a<b){ tmp = *a; *a = *b; *b = tmp; } } int calcEuclid(int a, int b){ int c; return 0; } 演習3解答 演習4 CPUと自分(手入力)で1~3の数値を交互に 言って行き、合計値が30になったほうが負ける ゲームをプログラミングせよ。このとき、CPUが 言う数値は乱数を使うこと。 余裕のある人は先攻か後攻を決められるようにせ よ。 演習4 実行結果例 演習4解答例(main文のみ) 演習4解答例(自作関数)
© Copyright 2024 ExpyDoc