不知道哪里出問題了,程式結果出不來
#include<stdio.h>
void A(int *a,int *p,int j);
void B(int *a,int *q,int k);
#define N 10
void main()
{
int p,q,j=0,k=0;
int a[N]={1,8,10,2,-5,0,7,15,4,-5};
A(a,&p,j);
printf("陣列中大最大值及其下標:%d %d\n",p,j);
B(a,&q,k);
printf("陣列中大最小值及其下標:%d %d\n",q,k);
}
void A(int *a,int *p,int j)
{
int i;
j=0;
p=a;
for(i=1;i<10;i++)
{
if(*p<*(a+i))
*p=*(a+i);
j=i-1;
}
}
void B(int *a,int *q,int k)
{
int i;
k=0;
q=a;
for(i=1;i<10;i++)
{
if(*q>*(a+i))
*q=*(a+i);
k=i-1;
}
}
uj5u.com熱心網友回復:
你的函式這么定義的話,里面的*p=*(a+i);*p就相當于值傳遞了,肯定回傳不了,用指向指標的指標就可以了,還有下標也弄錯了#include<stdio.h>
void A(int *a,int **p,int &j);
void B(int *a,int **q,int &k);
#define N 10
void main()
{
int *p,*q;
int j=0,k=0;
int a[N]={1,8,10,2,-5,0,7,15,4,-5};
A(a,&p,j);
printf("陣列中大最大值及其下標:%d %d\n",*p,j);
B(a,&q,k);
printf("陣列中大最小值及其下標:%d %d\n",*q,k);
}
void A(int *a,int **p,int &j)
{
int i;
j=0;
*p=a;
for(i=1;i<10;i++)
{
if(**p<*(a+i))
{
**p=*(a+i);
j=i;
}
}
}
void B(int *a,int **q,int &k)
{
int i;
k=0;
*q=a;
for(i=1;i<10;i++)
{
if(**q>*(a+i))
{
**q=*(a+i);
k=i;
}
}
}
uj5u.com熱心網友回復:
還是運行不出來,顯示有錯誤uj5u.com熱心網友回復:
除錯,打斷點轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/45975.html
標籤:非技術區
上一篇:求助 Tom and Jerry (大概是這么叫的)
下一篇:鏈表問題
