题意是输入十个整数,将这十个数中的最小值与第一位对调,
最大值与最后一位对调,然后输出这十个数。
但是这串代码输出的是第一位数依次加上4,求教问题出在哪?
谢谢!
#include
void input(int*);
void fun(int*);
void print(int*);
int main()
{
int a[10];
int *p=a;
input(p);
fun(p);
print(p);
return 0;
}
void input(int *p)
{
int i;
for (i=0;i
{
scanf("%d",p+i);
}
}
void fun(int *q)
{
int i,t=0;
int *p=q;
int *pmin=p;
int *pmax=p;
for (i=0;i
{
if (*p>*pmax)
{
pmax=p;
}
if (*p<*pmin)
{
pmin=p;
}
}
t=*pmax;
*pmax=*p;
*p=t;
t=*pmin;
*pmin=*p;
*p=t;
}
void print(int *p)
{
int i;
for(i=0;i<10;i++)
{
printf("%d ",p+i);
}
printf("\n");
}
求教这串代码哪里有bug?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2019-11-17 09:17关注
// Q950613.cpp : Defines the entry point for the console application. // #include <stdio.h> void input(int*); void fun(int*); void print(int*); int main() { int a[10]; int *p=a; input(p); fun(p); print(p); return 0; } void input(int *p) { int i; for (i=0;i < 10; i++) { scanf("%d",p+i); } } void fun(int *q) { int i,t=0; int *p=q; int *pmin=p; int *pmax=p; for (i=0;i < 10; i++) { p = q + i; if (*p>*pmax) { pmax=p; } if (*p<*pmin) { pmin=p; } } t=*pmax; *pmax=*(q+9); *(q+9)=t; t=*pmin; *pmin=*q; *q=t; } void print(int *p) { int i; for(i=0;i<10;i++) { printf("%d ",*(p+i)); } printf("\n"); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 Matlab计算100000*100000的矩阵运算问题:
- ¥50 VB6.0如何识别粘连的不规则的数字图片验证码
- ¥16 需要完整的这份订单所有的代码,可以加钱
- ¥30 写一个带界面控制的机房电脑一键开机关机并且实时监控的软件
- ¥15 Stata数据分析请教
- ¥15 请教如何为VS2022搭建 Debug|win32的openCV环境?
- ¥15 关于#c++#的问题:c++如何使用websocketpp实现websocket接口调用,求示例代码和相关资料
- ¥15 51单片机的外部中断,按下按键后不能切换到另一个模式
- ¥15 java连接sqlserver有问题
- ¥15 yolov8 如何调cfg参数