#include<stdio.h>
int main()
{
void sort(float *x,int n);
int i,m;
float *p;
float a[1000];
p=a;
scanf("%d",&m);
for(i=0;i<m;i++){
scanf("%f",p++);
}
p=a;
sort(p,m);
return 0;
}
void sort(float *x,int n)
{
int i,j,k,t;
float aver;
for(i=0;i<n-1;i++){
k=i;
for(j=j+1;j<n;j++)
if(*(x+j)>*(x+k))k=j;
if(k!=i)
{
t=*(x+i);*(x+i)=*(x+k);*(x+k)=t; }
}
for(i=0;i<n;i++)
aver+=*(x+i);
printf("max=%0.2f\nmin=%0.2f\navge=%0.2f",*x,*(x+n-1),aver/n);
}
运行这个代码,为什么会出现下面的情况,是哪里错了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qzjhjxj 2022-11-24 09:15关注
修改如下,供参考:
#include <stdio.h> int main() { void sort(float* x, int n); int i, m; float* p; float a[1000]; p = a; scanf("%d", &m); for (i = 0; i<m;i++) scanf("%f", p++); p = a; sort(p, m); return 0; } void sort(float* x, int n) { int i, j, k, t; float aver = 0; for (i = 0; i < n - 1; i++) { k = i; for (j = k + 1; j < n; j++) if (*(x + j) > *(x + k)) k = j; if (k != i) { t = *(x + i); *(x + i) = *(x + k); *(x + k) = t; } } for (i = 0; i < n; i++) aver += *(x + i); printf("max=%0.2f\nmin=%0.2f\navge=%0.2f", *x, *(x + n - 1), aver / n); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 微信会员卡接入微信支付商户号收款
- ¥15 如何获取烟草零售终端数据
- ¥15 数学建模招标中位数问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 HLs设计手写数字识别程序编译通不过
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 TYPCE母转母,插入认方向
- ¥15 如何用python向钉钉机器人发送可以放大的图片?