中易网

c编程高手请进:看个极原始的程序。

答案:3  悬赏:50  
解决时间 2021-12-30 23:42

max_of_num(int *p,int num)
{
int i,k=0;
int temp=*p;//p为一维int数组的一级指针
for(i=0;i<num;i++)
{
if(temp<*(p+i))
{temp=*(p+i);
k=i;//我的问题所在
}
}
return k;
}
问题是:如果把k换成i或者是(i-1),结果错误,把i换成i-num;结果有时正确,有时错误。为什么?

#include"stdio.h"
void array_output(int(*p)[3],int index);
int *min_of_array(int *p,int num);
void same();
void main()
{
int b[2][3]={{1,2,3},{4,5,6}};
array_output(b,0);
array_output(b,1);
same();

}
void array_output(int(*p)[3],int index)
{
int i=0;
printf("数组b的第%d行的元素值为:",index+1);//初次编译有5个莫名错误,原因是",index+1的“,”为半角格式,错了!
for(i=0;i<3;i++)
printf("%d ",*(*(p+index)+i));
printf("\n");

}
void same()
{
int b[6]={12,41,23,65,85,32};
int *p=min_of_array(b,6);
printf("数组b中的元素最小值为:%d",*p);
}
int * min_of_array(int *p,int num)
{
int j,k=0;
int temp=*p;
for(j=0;j<num;j++)
if(temp>*(p+j))
{
temp=*(p+j);
k=j;
}
return p+k;//return p+k,返回的值为12,是对的。改为return p+j;则返回1245056,错了,但是改为return p+j-6;为什么?
}
最佳答案
你的程序没错
max_of_num(int *p,int num)
{
int i,k=0;
int temp=*p;
for(i=0;i<num;i++)
{
if(temp<*(p+i))
{
temp=*(p+i);
k=i;
}
}
return *(p+k);//你原先是返回下标
}
全部回答
请记住, 你这个函数返回的结果是数组下标 所以,如果你把i变成i-1,结果肯定是不对的 本来最大值是数组的第i个,你偏要返回是第i-1个, 能对吗 至于i-num就更荒谬了,i-num应该是负值(i<=num) 不管结果正确还是错误,都是没有意义的
呵呵你是做毕业论文啊。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
畫景的意思是什么?畫景的释义是什么啊?
lp地址获取失败是不是路由器坏了
素封的意思是什么啊?请解释下!
哪些植物有一些与众不同的特点?具体介绍一下
挑三撥四的意思是什么?挑三撥四的释义是什么
醋是碱性还是酸牲
体育场街道办事处地址在哪,我要去那里办事
电影院附近适合卖什么小吃
湖田街道办事处地址在什么地方,想过去办事
情网的意思是什么?情网的释义是什么啊?
闾阎医工的意思是什么啊?请解释下!
of是介词吗
w8系统安装那个版本的cad能用
VS2010中用C++写了一个WIN32程序。但程序需要
閶闔門的意思是什么?閶闔門的释义是什么啊?
推荐资讯
九阴真经怎么呼叫在线GM
2015年陕西三支一扶考试公告什么时间发布?
真坛的意思是什么?真坛的释义是什么啊?
大家说说买ipad都能干嘛啊?我去年年底买了个
日前兰州市哪家银行保本理财利息高
63年阳历8月20日阴历是几日?
(1/2)常温下,pH=4.75,浓度为0.1mol/L的醋酸
杨家窑村委会地址在什么地方,想过去办事
中国移动(尚田营业厅)地址在什么地方,我要处
淄博市临淄区殡仪馆地址在什么地方,想过去办
火云邪神的拖鞋哪里有卖?
和尚进城之紫玉金钵片尾曲是什么歌
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?