一维数组:冒泡排序/选择排序/进制转换

int i;
int arr[]={1,2,3,4,5,6};

printf("%d\n",sizeof(arr));
printf("%d\n",sizeof(arr)/sizeof(arr[0]));

冒泡排序,一次排好一个数

#include<stdio.h>
#include<stdlib.h>

#define N 10
static void sort1(void)
{
	int tmp;
	int a[N] = {12,8,45,10,98,67,2,7,68,11};
	for(int i = 0;i<(N-1);i++)
	{
		for(int j = 0; j< N-1-i;j++)
		{
			if(a[j]> a[j+1])
			{
			tmp = a[j+1];
			a[j+1]= a[j];
			a[j]= tmp;
			}
		}
	}
	for(int i = 0;i<N;i++)
		printf("%d",a[i]);

}
int main(){
sort1();
exit(0);
}

选择排序 同样也是一次一个数,但有些不一样, 每次定位都定位在最小的数组下标后交换。

#include<stdio.h>
#include<stdlib.h>

#define N 10
static void sort2(void){
	int i,k,j,tmp;
	int a[N] = {12,8,45,10,98,67,3,7,68,11};
	for(i = 0;i< sizeof(a)/sizeof(a[0]);i++)
		printf("%d ",a[i]);
	printf("\n");
	
	
	for(i =0 ;i<N-1;i++){
		k = i;
		for(j = i+1;j < N;j++){
			if(a[j]<a[k]){
				k = j;
			}
			}
		if(i != k){
				tmp = a[i];
				a[i] = a[k];
				a[k] = tmp;
		}
		
	}

	for(i = 0;i< sizeof(a)/sizeof(a[0]);i++)
		printf("%d ",a[i]);
	printf("\n");
}
int main(){

sort2();
exit(0);
}

进制转换

static void base_convert(void)
{
	int num,base;
	printf("please enter the cpnverted num:");
	scanf("%d",&num);
	printf("please enter the base:");
	scanf("%d",&base);

	do
	{
		n[i] = num%base;
		num = num/base;
		i++;
	}while(num ! =0);
	for(i--; i>=0;i-- )
	{
		if(n[i]>=10)
			printf("%c",n[i]-10 +'A');
		printf("%d",n[i]);
	}
	printf("\n");

}

删除法求质数 删除i 的整倍数

当 i = 2 时,我们从 j = 2 * 2 = 4 开始,每次增加 i = 2,标记 4、6、8、10、12、14、… 等数为非质数;

当 i = 3 时,我们从 j = 3 * 2 = 6 开始,每次增加 i = 3,标记 6、9、12、15、… 等数为非质数;

当 i = 5 时,我们从 j = 5 * 2 = 10 开始,每次增加 i = 5,标记 10、15、20、… 等数为非质数;

以此类推,直到 i = 1000 结束循环。这样,我们就将所有非质数标记了一遍,剩下的就是质数。

static void primer(void)
{
	char primer[1001] = {0};
	for(i = 2;i<1001;i++)
	{	
		if(primer[i]==0)
		{
		for(j = i*2;j<1001;j+=i)
			primer[j]=-1;
		}
	}
	for(i=2;i<1001;i++)
	 if(primer[i]==0)
	 	printf("%d is a pimer \n.",i);
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值