寻找最小值

算法

void findMin(int A[],int &i) //用i来保存最小值
{
	i=A[0]; //i先保存存入A[0]的值
	while(i/10 <= N-1) //取i的十位上的数字作为循环变量,与N-1作比较
	{
		if(i%10 > A[i/10]) 
		{
			i = i-i%10; //如果i的个位上的数字大于A[i/10]中		 
			i = i+A[i/10]; //的数字,则将个位上的数字换成A[i/10]
		}
		i = i+10; //i的十位上的数字加1,即循环变量+1
	}
	i = i%10; //循环结束后,i的个位上的数字保存了A[]中的最小值,将i更新为i的个位上的数字
}

测试环境

#include<stdio.h> 
#define N 10 
void findMin(int A[],int &i) //用i来保存最小值
{
	i=A[0]; //i先保存存入A[0]的值
	while(i/10 <= N-1) //取i的十位上的数字作为循环变量,与N-1作比较
	{
		if(i%10 > A[i/10]) 
		{
			i = i-i%10; //如果i的个位上的数字大于A[i/10]中		 
			i = i+A[i/10]; //的数字,则将个位上的数字换成A[i/10]
		}
		i = i+10; //i的十位上的数字加1,即循环变量+1
	}
	i = i%10; //循环结束后,i的个位上的数字保存了A[]中的最小值,将i更新为i的个位上的数字
}

int main(){
	int a[10] = {3,5,7,2,8,1,4,5,2,7};
	int i;
	findMin(a, i);
	printf("%d i",i);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值