c语言编程练习——2014/7/26——数组

本文介绍了几种基本的算法实现,包括筛选法求素数、选择法和冒泡法进行数组排序,并展示了如何将一个数值插入已排序的数组中。通过具体的C语言代码示例,帮助读者理解这些经典算法的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
	
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值