OIT Archive
C演習I 09
最終更新:
oit-archive
-
view
work91.c
- #include <stdio.h>
-
- #define NUMBER 8
-
- int main(void){
- int data[NUMBER];
- int i;
- int sum;
-
- for (i=0; i<NUMBER; i++){
- }
-
- sum = 0;
- for (i=0; i<NUMBER; i++){
- sum = sum + data[i];
- }
-
- return 0;
- }
-
work92.c
- #include <stdio.h>
-
- #define N 10
-
- int main(void){
- int a[N] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90};
- int x, y;
- int tmp;
-
-
-
-
- tmp = a[x];
- a[x] = a[y];
- a[y] = tmp;
-
-
- return 0;
- }
-
work93.c
- #include <stdio.h>
-
- #define N 12
-
- int main(void){
- int a[N] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110};
- int i;
- int tmp;
-
- for (i=0; i<N; i++){
- }
-
- for (i=0; i<N-1-i; i++){
- tmp = a[i];
- a[i] = a[N-1-i];
- a[N-1-i] = tmp;
- }
-
- for (i=0; i<N; i++){
- }
-
- return 0;
- }
-
work94.c
- #include <stdio.h>
-
- #define N 5
-
- int main(void){
- int a[N] = {0, 10, 20, 30, 40};
- int b[N] = {0, 10, 20, 30, 40};
- int c[N] = {0, 10, 20, 30, 40};
- int i;
- int cnt;
- int tmp;
-
- for (cnt=0; cnt<N; cnt++){
-
- /* 配列aを左シフト */
- for (i=0; i<N-1; i++){
- a[i] = a[i+1];
- }
-
- for (i=0; i<N; i++){
- }
-
-
- /* 配列bを右シフト */
- for (i=N-1; i>=1; i--){
- b[i] = b[i-1];
- }
-
- for (i=0; i<N; i++){
- }
-
- /* 配列cを循環右シフト */
- tmp = c[N-1];
- for (i=N-1; i>=1; i--){
- c[i] = c[i-1];
- }
- c[0] = tmp;
-
- for (i=0; i<N; i++){
- }
- }
- return 0;
- }
-
work95.c
- #include <stdio.h>
- #define MAXSIZE 10
- int main(void){
- int a[MAXSIZE] = {10, 20, 30, 40, 50};
- int index; /* キーボードから入力した添字を格納 */
- int data; /* キーボードから入力した値を格納 */
- int i;
-
- for (i=0; i<MAXSIZE; i++){
- }
-
- /* 1回目の入力 */
-
- /* 挿入 */
- for (i=MAXSIZE-1; i>index-1; i--){
- a[i] = a[i-1];
- }
- a[index] = data;
-
- for (i=0; i<MAXSIZE; i++){
- }
-
- /* 2回目の入力 */
-
- /* 削除 */
- for (i=index; i<MAXSIZE-1; i++){
- a[i] = a[i+1];
- }
- a[MAXSIZE-1] = 0;
-
- for (i=0; i<MAXSIZE; i++){
- }
-
- return 0;
- }
-
work96.c
- #include <stdio.h>
- #define N 10
- int main(void){
- int a[N];
- int i, j;
- int min_index;
- int tmp;
-
- for (i=0; i<N; i++){
- }
-
- /* iを0からN-1まで増やしながら,以下を繰り返す */
- for (i=0; i<N; i++){
-
- /* a[i]?a[N-1]の中から最小値をもつ要素の添字を
- 見つけ,その添字をmin_indexに格納する */
- min_index = i;
- for (j=i; j<N; j++){
- if (a[j] < a[min_index]){
- min_index = j;
- }
- }
-
- /* a[i]とa[min_index]を交換する */
- tmp = a[i];
- a[i] = a[min_index];
- a[min_index] = tmp;
- }
-
- for (i=0; i<N; i++){
- }
-
- return 0;
- }
-
work97.c
- #include <stdio.h>
-
- #define N 8
-
- int main(void){
- int data[N] = {10, 20, 30, 40, 50, 60, 70};
- int i;
- int tmp;
-
-
- for (i=0; i<N; i++){
- }
-
- tmp = data[N-1];
- for (i=N-2; i>=0 && tmp<data[i]; i--){
- data[i+1] = data[i];
- }
- data[i+1] = tmp;
-
-
- for (i=0; i<N; i++){
- }
-
- return 0;
- }
-
work98.c
- #include <stdio.h>
- #define N 10
- int main(void){
- int a[N];
- int i, j;
- int tmp;
-
- for (i=0; i<N; i++){
- }
-
- /* 挿入ソート */
- for (i=1; i<N; i++){
- tmp = a[i];
- j=i-1;
- while (j>=0 && tmp<a[j]){
- a[j+1] = a[j];
- j--;
- }
- a[j+1] = tmp;
- }
-
- for (i=0; i<N; i++){
- }
-
- return 0;
- }
-
work99.c
- #include <stdio.h>
- #define N 8
- int main(void){
- int a[N][N]; /* N×N行列 */
- int b[N][N]; /* N×N行列 */
- int c[N][N]; /* N×N行列 */
- int i, j;
-
- /* N×N行列の初期設定 */
- for (i=0; i<N; i++){
- for (j=0; j<N; j++){
- a[i][j] = i*N+j;
- b[i][j] = i+j;
- }
- }
-
- /* 行列和の計算 */
- for (i=0; i<N; i++){
- for (j=0; j<N; j++){
- c[i][j] = a[i][j]+b[i][j];
- }
- }
-
- for (i=0; i<N; i++){
- for (j=0; j<N; j++){
- }
- }
- return 0;
- }
-