第10回演習の解答例


(1)要素数 4 個の整数型配列 {5,3,6,2}の中身を表示するプログラム


#include <stdio.h>

void main()
{
    int i , a[4]={5,3,6,2};
	
	for( i=0; i<4; i++){
		printf("%d ",a[i]);
		             }
}


(2)(1)の配列の中身を入れ替えるプログラム


#include <stdio.h>

void main()
{
	int i , a[4]={5,3,6,2},tmp;
	
	for( i=0; i <4; i++){		/*最初の中身表示*/
		printf("%d ",a[i]);
			}
	tmp=a[0];
	a[0]=a[2];
	a[2]=tmp;

	printf("¥n");

	for( i=0; i <4; i++){		/*入れ替え後の中身表示*/
		printf("%d ",a[i]);
			}	    
}

(3)(1)の配列を大きい順に並び替えるプログラム


#include <stdio.h>

void main()
{

	int i,j,k, a[4]={5,3,6,2},tmp;
	
	for( i=0; i <4; i++){		/*最初の中身表示*/
		printf("%d ",a[i]);
			}
		for(i=0; i<4; i++){
			printf("¥n");
		for(j=i+1; j<4; j++){
			if(a[i] < a[j]){
				tmp  = a[i];
				a[i] = a[j];
				a[j] = tmp;
				for( k= 0; k < 4; k++){		
					printf("%d ",a[k]);
						}
					}
				}
			}

	for( i = 0; i < 4; i++){		/*入れ替え後の中身表示*/
		printf("%d ",a[i]);
			}	
}


(4)要素数10の配列をバブルソートで小さい順に並び替えるプログラム


#include <stdio.h>

void main()
{
    int a[10]={5, 3, 8, 6, 4, 9, 2,7, 5, 1 }, i, j, k, tmp;

	printf("並べ替え前:");
	
	for( i=0; i<10; i++){				
		printf("%d ",a[i]);
	}
	printf("¥n");
	
	for( i=9; i>0; i-- ){				/* バブルソート */
		for( j=0; j<i; j++ ){
			
			if( a[j] > a[j+1] ){
				tmp = a[j];
				a[j] = a[j+1];
				a[j+1] = tmp;
				
			for( k=0; k<10; k++){		/* 途中経過表示 */
				printf("%d ",a[k]);
					     }
			printf("¥n");
					    }
					}
				}
	printf("並べ替え後:");
	
	for( i=0; i<10; i++){
		printf("%d ",a[i]);
				}
	
}


(5)要素数10の配列を挿入ソートで小さい順に並び替えるプログラム


#include <stdio.h>

void main()
{
	int a[10]={5, 3, 8, 6, 4, 9, 2,7, 5, 1 }, i, j,k, tmp;

	printf("並べ替え前:");
	
	for( i=0; i<10; i++){				
		printf("%d ",a[i]);
	}
	printf("¥n");
	
	for (i = 1; i < 10; i++) {				/* 挿入ソート */
       		tmp = a[i];             
        	for (j = i; j > 0 && a[j-1] > tmp; j--) {
            		a[j] = a[j -1];                    
       							}
			a[j]=tmp;
				
		for( k=0; k<10; k++){				/* 途中経過表示 */
			printf("%d ",a[k]);
					}
			printf("¥n");
					    		
				}
	printf("並べ替え後:");
	
	for( i=0; i<10; i++){
		printf("%d ",a[i]);
				}
	
}