c語言編程練習——2014/7/26——數組

6.1

//篩選法求100以內素數 
#include <stdio.h>
#include <math.h>
int main()
{
	int i,j,n,a[101];
	for (i = 1; i <= 100; i++)
	    a[i] = i;//對數組賦值 
	a[1] = 0;//除去a[1] 
	for (i = 2; i < sqrt(100); i++)
	  for (j = i+1; j <= 100; j++)
	  {
	  	if ( a[i] != 0 && a[j] != 0)
	  	  if (a[j] % a[i] == 0)
	  	    a[j] = 0;
	  }
	printf("\n");
	for (i = 2,n=0; i <= 100; i++) 
	{
		if (a[i] != 0)
		{
			printf("%5d",a[i]);
			n++;
		}
		if (n == 10)
		{
			printf("\n");
			n=0;
		}
	}
	printf("\n");
	return 0;//misad
}

6.2

//選擇法對10個整數排序
#include <stdio.h>
int main()
{
	int i,j,min,temp,a[11];
	printf("enter data: \n");
	for (i = 1; i <= 10; i++)
	{
		printf("a[%d] = ",i);
		scanf("%d",&a[i]);
	}
	printf("\n");
	printf("The original numbers:\n");
	for (i = 1; i <= 10; i++)
	  printf("%5d",a[i]);
	printf("\n");
	for (i = 1; i <= 9; i++)
	{
		min = i;
		for (j = i;j <= 10; j++)
		{
		    if( a[min] > a[j])
		    {
		    	min = j;
		    }
		}
		if(min != i)
		{
		  temp = a[i];
		  a[i] = a[min];
		  a[min] = temp;
	    }
	}
	printf("\nThe sorted numbers:\n");
	for(i = 1; i <= 10; i++)
	    printf("%5d",a[i]);
	printf("\n");
	return 0;//misad
} 

6.4
//將一個數輸入已排好序的數組中
//先用冒泡法將9個數進行排序,最後插入第十個數完成任務
#include  <stdio.h>
int main()
{
	int a[10],i,j,temp,pt;
	printf("enter data:\n");
	for(i = 0; i < 9; i++)
	{
		printf("a[%d] = ",i);
		scanf("%d",&a[i]);
	}
	
	printf("Enter inserted number:\n");
	printf("a[9] = ");
	scanf("%d",&a[9]);
	
	printf("The orginal numbers:\n");
	for(i = 0; i < 9; i++)
	    printf("%5d",a[i]);
	printf("\n");
	

	
	//mission 1
	for(i = 0; i < 8; i++)             //BubbleSolt
	{
		for(j = 0; j < 8-i; j++)
		{
			if(a[j]>a[j+1])
			{
				temp = a[j+1];
				a[j+1] = a[j];
				a[j] = temp;
			}	    
		}
	}
	
	printf("The sorted numbers:\n");
	for (i = 0; i < 9; i++)
	    printf("%5d",a[i]);
	printf("\n");
	
	//mission 2	
	
	for (i = 0; i < 10; i++)
	{
		if(a[9] > a[i] && a[9] <= a[i+1])
		{
			pt=i+1;break;
		}
	}
    
    for(j = 9; j >pt; j--)
    {
    	temp = a[j];
    	a[j] = a[j-1];
    	a[j-1] =temp;
    }
    
	printf("The final sorted numbers:\n");
	for (i = 0; i < 10; i++)
	    printf("%5d",a[i]);
	printf("\n");
	
	return 0;//dd
	
} 
answer to 6.4

//6.4答案
#include <stdio.h>
int main()
{
	int a[11] = {1,4,6,9,13,16,19,28,40,10};
	int temp1,temp2,number,end,i,j;
	printf("array a:\n");
	for (i = 0; i < 10;i++)
	  printf("%5d",a[i]);
	printf("\n");
	printf("insert data:");
	scanf("%d",&number);
	end = a[9];
	if(number > end)
      a[10]=number;
    else
    {
    	for (i = 0;i < 10; i++)
		{
			if (a[i] > number)
			{
				temp1 = a[i];
				a[i] = number;
				for (j = i+1; j < 11; j++)
				{
					temp2 = a[j];
					a[j] = temp1;
					temp1 = temp2;
				} 
			break;
			}
		} 
    }
    printf("Now array a:\n");
    for (i = 0;i < 11; i++)
      printf("%5d",a[i]);
    printf("\n");
    return 0;
	
} 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章