用c从小到大排序为什么每次第一个都是最大的,而其他的都是正确的啊
解决时间 2021-02-26 13:11
- 提问者网友:無理詩人
- 2021-02-26 00:31
#include
void main()
{
int a[10];
printf("请输入数组的10个元素\n");
for(int i=0;i<10;i++)
scanf("%d",&a[i]);
for(int m=0,b=a[0];m<10;m++)
for(int j=1;j<10;j++)
if(a[m]<=a[j]){b=a[m];a[m]=a[j];a[j]=b;}
for(int n=0;n<10;n++)
printf("%d ",a[n]);
}
运行环境VC6.0++,windows8.1,已安装64位运行库
最佳答案
- 五星知识达人网友:走死在岁月里
- 2021-02-26 01:46
简单,用冒泡排序法
#include
struct student
{
int stuid;
int subject;
int score;
}stu[20];//先定义一个结构
void main()
{
int i,j;
struct student *p,*temp;
p=stu;
printf("请输入20个学生的信息");
for(i=0;i<20;i++)
{
printf("请输入第%d个学生的信息\n学号:"i+1);
scanf("%d",&stu.stuid);
printf(" 科目:");
scanf("%d",&stu.subject);
printf(" 成绩:");
scanf("%d",&stu.score);
}
for(i=0;i<10;i++)
{
for(j=0;j<10-i-1;j++)
{
if((p+j)>(p+j+1))
{
*temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=*temp;
}
}
}
printf("排序后:\n");
printf("学号\t\t科目\t\t成绩");
for(i=0;i<10;i++)
{
printf("%d\t\t%d\t\t%d",stu.stuid,stu.subject,stu.score);
}
全部回答
我。。知。。道
加。。我。。私。。聊
我要举报
大家都在看
推荐资讯