有一个整数序列表L,设计一个算法找最小元素值的最后一个的序号,序号从0开始,相同值的数序号相同。
输入格式:
第1行输入为位元素个数len,len为整形。
第2行输入为len个整形元素的值。
输出格式:
一个整形数值,即最后一个元素的下标序号,下标从0开始。
输入样例:
7
1 5 1 1 3 2 4
输出样例:
3
输入样例2:
10
4 3 4 7 2 0 3 4 7 7
输出样例2:
4
本人代码:#include<stdio.h>
#include<stdlib.h>
#define N 100
typedef struct SList
{
int data[N];
int size;
}SL;
void SLInit(SL ps)
{
ps=(SL)malloc(sizeof(SL));
ps->size=0;
}
void SLCreate(SL* ps, int n)
{
ps->size=n;
int x=0;
for(int i=0;isize;i++)
{
scanf("%d",&x);
getchar();
ps->data[i]=x;
}
}
int SLFind(SL* ps)
{
int min=ps->data[0];
int pos=0;
for(int i=0;isize;i++)
{
if(ps->data[i]<min)
{
min=ps->data[i];
pos=i;
}
}
return pos;
}
int main(){
SL plist;
SLInit(&plist);
int n=0;
scanf("%d",&n);
getchar();
SLCreate(&plist,n);
int min=SLFind(&plist);
printf("%d",min);
return 0;
}
本人代码只能得到最开始的最小元素值的下标,请问如何得到最小元素值的最后一个的序号.