算法设计归纳(保持更新)

1.排序算法
排序是常用操作。下面是将一组整数按从小到大排列的算法代码:

#include <iostream>
#include <string>

using namespace std;

int main(void)
{
	int n,i,temp;
	//step1:输入待排列数字
	cout << "排序数字个数:" << endl;
	cin >> n;             // n在整个程序中保持不变
	int b[n];             

	//step2:输入待排序数字,并从小到大重新排序
	cout << "待排序数字:" << endl;
	for(i=n-1;i>=0;i--)
	{
		cin >> b[i];
	}
	// 从小到大排序
	for(i=n-1;i>0;i--)
	{
		if(b[i] < b[i-1])     //与左边相邻数比较,若小,则交换
		{
			temp = b[i];
			b[i] = b[i-1];
			b[i-1] = temp;
			i=n;              //重新从数组最右侧数开始比较
		}
       // 本次相邻数字若无交换,则轮到下一个数字与左边相邻数比较
	}
    //显示排序后的数字
	for(i=0;i<n;i++)
	{
		cout << b[i] << ' ';
	}
    return 0;
}

2.提取整数各位上的数

string number;
int n,i;
cin >> number; // number为输入的数字
n = number.size();  // number的位数

int a[n];

for(i=n-1;n>=0;n--)
{
    a[n] = ((int)number[n]-48);              //0~9的ASCII值减去48,得到对应的整型值
		
}

另外,还有一种求模的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值