6-4 求一组数最小值及其位置 (6 分)
本题要求实现一个函数,求一组数最小值及其第一次出现的位置。
函数接口定义:
int Min(int *p, int n,int *pos );
其中 p、n、pos 都是用户传入的参数。函数求数组中n个元素的最小值及其第一次出现的位置。位置通过 pos带回,函数返回最小值 。
裁判测试程序样例:
#include <stdio.h>
#define N 5
int Min(int *p, int n,int *pos );
int main()
{
int a[10],i,min,min_pos;
int *pa=a;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
min=Min(pa,N,&min_pos);
printf("min=%d,min_pos=%d",min,min_pos);
return 0;
}
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
90 60 78 40 55
输出样例:
在这里给出相应的输出。例如:
min=40,min_pos=3
void fun (int x, int *px)
{
int r,s,a=x;
s=0;
while(x)
{
r=x%10;
if(r%3==0)
{
s=s*10+r;
}
x/=10;
}
if(s>0)
{ *px=0;
while(s)
{
r=s%10;
s/=10;
*px=*px*10+r;
}}
else
{
*px=a;
}
}
void fun (int x, int *px)
{
*px=0;
int a=x,g=0,r;
while(a)
{
r=a%10;
a/=10;
if(r%3==0)
{
*px=*px*10+r;
g++;
}
}
if(g==0)
*px=x;
else{
a=*px;
*px=0;
while(a)
{
r=a%10;
a/=10;
*px=*px*10+r;
}
}
}