一个简单的问题,高手勿见笑
我是想在五个数中依次找出前三个大数并显示他们在数组中的位置,比如5个数为5,4,3,2,1,则答案应为5,0
4,1
3,2
现在发现当数组中有重复数字时比如 5,5,5,4,3
答案应为
5,0
5,1
5,2
但运行后的答案却是
5,2
5,2
5,2
不知为什么 求高手指教,谢谢
main()
{
int *a,*b,*c,i,j,k,s1,s2,s3,n,t[5];
a=&t[0];
b=&t[1];
c=&t[2];
printf("\n");
for(i=0;i<=4;i++)
scanf("%d,",&t[i]);
for(i=0;i<=4;i++)
{
if(*a<t[i])
a=&t[i];
}
for(i=0;i<=4;i++)
{
if(*a==t[i])
s1=i;
}
printf("%d,%d\n",*a,s1);
for(j=0;j<=4;j++)
{
if(*b<t[j]&&s1!=j)
b=&t[j];
}
for(j=0;j<=4;j++)
{
if(*b==t[j])
s2=j;
}
printf("%d,%d\n",*b,s2);
for(k=0;k<=4;k++)
{
if(*c<t[k]&&s1!=k&&s2!=k)
c=&t[k];
}
for(k=0;k<=4;k++)
{
if(*c==t[k])
s3=k;
}
printf("%d,%d",*c,s3);
}
[ 本帖最后由 zzgzzg00 于 2010-9-10 09:28 编辑 ]