C语言小问题。。。。求指教

#include<stdio.h>#include<stdlib.h>structdata{int*p;/*指向整数序列某个整数的指针*/intno;/*整数序列某个整数... #include <stdio.h>
#include <stdlib.h>

struct data
{ int *p; /* 指向整数序列某个整数的指针 */
int no; /* 整数序列某个整数的编号 */
};
int main(int argc, char *argv[])
{ int a[20], i,j,n;
struct data pa[20];
void sort( );
scanf("%d", &n);
for( i=0; i<n; i++ )
{ scanf("%d",&a[i]);
pa[i].p=&a[i];
pa[i].no=0;
}
sort(pa,n);
for(i=0;i<n;i++)
printf("%d:%d\n",pa[i].no,a[i]);

system("PAUSE");
return 0;
}
void sort(struct data pa[],int n)
{ int i,j,k,t,*m;
for(i=0;i<n-1;i++)
{ t=i;
for(j=i+1;j<n;j++)
{ if(*pa[t].p>*pa[j].p)
{ m=pa[j].p;
pa[t].p=pa[j].p;
pa[j].p=m;
}

}
pa[t].no=i+1;
}
pa[i].no=n;

}
就是选最小值那一块出了点问题。。。
展开
 我来答
百度网友26ad406
2012-06-08 · TA获得超过1611个赞
知道大有可为答主
回答量:1506
采纳率:100%
帮助的人:1057万
展开全部
#include <stdio.h>
#include <stdlib.h>

struct data
{
int *p; /* 指向整数序列某个整数的指针 */
int no; /* 整数序列某个整数的编号 */
};
void sort(struct data pa[],int n)
{
int i,j,k,t,*m;
for(i=0;i<n-1;i++)
{
t=i;
for(j=i+1;j<n;j++)
{
if(*pa[t].p>*pa[j].p)
{
m=pa[j].p;
pa[j].p=pa[t].p;
pa[t].p=m;
}

}
pa[t].no=i+1;
}
pa[i].no=n;

}
int main(int argc, char *argv[])
{
int a[20], i,j,n;
struct data pa[20];
scanf("%d", &n);
for( i=0; i<n; i++ )
{
scanf("%d",&a[i]);
pa[i].p=&a[i];
pa[i].no=i;
}
sort(pa,n);
for(i=0;i<n;i++)
printf("%d:%d\n",pa[i].no,*pa[i].p);

system("PAUSE");
return 0;
}
追问
不是排序。。。。找最小值以及它所对应的下标。 编写程序,输入整数序列,原序输出该整数序列,以及它们的按照从小到大的编号。数值相同的数据按输入顺序进行编号。
  对数据进行编号的函数原型如下:void sort(struct data p[ ],int n )
参数 p 是结构指针;参数 n 是整数序列中整数的个数。
例如输入整数个数:6
整数序列:4 8 2 13 4 1
输出:
3:4
5:8
2:2
6:13
4:4
1:1
追答
#include 
#include

struct data
{
int *p; /* 指向整数序列某个整数的指针 */
int no; /* 整数序列某个整数的编号 */
};
void sort(struct data pa[],int n)
{
int i,j,k,t,*m;
for(i=0;i*pa[j].p)
{
k++;
}
if(*pa[i].p==*pa[j].p&&i>j)
{
k++;
}

}
pa[i].no=k;
}

}
int main(int argc, char *argv[])
{
int a[20], i,j,n;
struct data pa[20];
scanf("%d", &n);
for( i=0; i<n; i++ )
{
scanf("%d",&a[i]);
pa[i].p=&a[i];
pa[i].no=i;
}
sort(pa,n);
for(i=0;i<n;i++)
printf("%d:%d\n",pa[i].no,a[i]);

system("PAUSE");
return 0;
}
音结弦无
2012-06-08 · TA获得超过535个赞
知道小有建树答主
回答量:663
采纳率:0%
帮助的人:368万
展开全部
void sort(struct data pa[],int n)
{ int i,j,k,m=0; //不要定义m为指针,不然后面比较时交换的是地址;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(*pa[i].p>*pa[j].p)
{ m=*pa[i].p;
*pa[i].p=*pa[j].p;
*pa[j].p=m;
}
}
pa[i].no=i+1;
}
pa[i].no=n;
}
追问
编写程序,输入整数序列,原序输出该整数序列,以及它们的按照从小到大的编号。数值相同的数据按输入顺序进行编号。
  对数据进行编号的函数原型如下:void sort(struct data p[ ],int n )
参数 p 是结构指针;参数 n 是整数序列中整数的个数。
例如输入整数个数:6
整数序列:4 8 2 13 4 1
输出:
3:4
5:8
2:2
6:13
4:4
1:1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
双友哟1534
2012-06-08
知道答主
回答量:5
采纳率:0%
帮助的人:7851
展开全部
#include <stdio.h>
#include <stdlib.h>

struct data
{
int *p; /* 指向整数序列某个整数的指针 */
int no;
};
void sort(struct data pa[],int n)
{
int i,j,k,t,*m;
for(i=0;i<n-1;i++)
{
t=i;
for(j=i+1;j<n;j++)
{
if(*pa[t].p>*pa[j].p)
{
m=pa[j].p;
pa[j].p=pa[t].p;
pa[t].p=m;
}

}
pa[t].no=i+1;
}
pa[i].no=n;

}
int main(int argc, char *argv[])
{
int a[20], i,j,n;
struct data pa[20];
scanf("%d", &n);
for( i=0; i<n; i++ )
{
scanf("%d",&a[i]);
pa[i].p=&a[i];
pa[i].no=i;
}
sort(pa,n);
for(i=0;i<n;i++)
printf("%d:%d\n",pa[i].no,*pa[i].p);

system("PAUSE");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式