吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1237|回复: 3
收起左侧

[已解决] C语言,的,一句编程语言的作用,求助

[复制链接]
爱捣鼓的小胖 发表于 2021-5-29 23:56
本帖最后由 爱捣鼓的小胖 于 2021-5-30 18:35 编辑

#include<stdio.h>

void sort(int *p,int n)
{int min,max; min=max=*p; int i,b,c;
for(i=0;i<n;i++)
{if(*(p+i)>max) {max=*(p+i);b=i;}
else if(*(p+i)<min) {min=*(p+i);c=i;}
}

int temp1,temp2;
//temp1=0;
//temp2=0;
//p=a;
{temp1=min;*(p+c)=*p;*p=temp1; }
{temp2=max;*(p+b)=*(p+9);*(p+9)=temp2; }
}

void print(int *p,int n)
{ int i;
for(i=0;i<n;i++)
printf("%d ",*(p+i) );
printf("\n");
}
void main()
{int a[10]={34,55,66,56,51,3,4,6,7,8};
sort(a,10);
print(a,10);
}

第3行的“min=max=*p”为什么不能去掉,或者把*p改为一个常数,1.

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

QueenRell 发表于 2021-5-30 10:07
本帖最后由 QueenRell 于 2021-5-30 10:21 编辑

“*p”是指针 所指的是数组中的值 它的值是不断变换的 不能用常量表示

#include<stdio.h>

void sort(int *p,int n)
{int min,max; min=max=*p; int i,b,c;                 //min=max=*p 是把数组中第一个值副给组大值和最小值
for(i=0;i<n;i++)
{if(*(p+i)>max) {max=*(p+i);b=i;}                    //比较数组的下一个值有没有第一个大 后者大 则更新最大值
else if(*(p+i)<min) {min=*(p+i);c=i;}               //否则 跟最小值比较 如果比min值小则赋值给min
}

int temp1,temp2;
//temp1=0;
//temp2=0;
//p=a;                                                                                    //temp1 最小值    temp2 最大值  做到从大到小排列
{temp1=min;*(p+c)=*p;*p=temp1; }
{temp2=max;*(p+b)=*(p+9);*(p+9)=temp2; }
}

void print(int *p,int n)
{ int i;
for(i=0;i<n;i++)
printf("%d ",*(p+i) );            
printf("\n");
}
void main()
{int a[10]={34,55,66,56,51,3,4,6,7,8};
sort(a,10);
print(a,10);
}

结果因该是 3 4 6 7 8 34 51 55 56 66
All_For_All 发表于 2021-5-30 10:07
东方小童 发表于 2021-5-30 11:46
max = min = *p 是为了保证都是数组中的值之间进行的比较。如果你没赋值给max ,min的话,那他就是一个乱值,它可能就不是你数组中的值,假如那你要找数组中最大值,你却拿一个不是数组中的值和数组中的值进行比较,这肯定有问题。同理,你给max ,min赋值为1也是,假如你数组最小值是2,那你得到的最小值还是1。还有,你最好把b,c也初始化为0,不然b,c有可能也不是你想要的结果
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-17 03:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表