Alireza_1387
شنبه 11 شهریور 1391, 23:58 عصر
نمی دونم تو این برنامه که با استفاده از آرایه های پویا و اشاره گرها نوشته شده
وقتی برنامه آرایه هارا با استفاده از تابع bubble مرتب می کنه تابع poutput اونها رو به صورت اشتباهی چاپ می کنه
و تابع median که میانه آرایه هارو بدست میاره ، همیشه میانه رو صفر چاپ می کنه چرا؟
مشکل چیه؟
#include <iostream.h>
#include <conio.h>
void pinput(int *,int);
void bubble(int *,int);
void median(int *,int,float *);
void poutput(int *,int n);
void dynamicArr(int *p);
void main()
{
int *p,n;
float med=0;
cout << "Enter student number:";
cin >> n ;
p = new int[n];
pinput(p,n);
bubble(p,n);
median(p,n,&med);
cout << "Median is:" << med ;
poutput(p,n);
dynamicArr(p);
getch();
}
void pinput(int *p,int n)
{
int i=0;
for(i;i<n;i++)
{
cout << "Enter number "<<(i+1)<<":";
cin >> *(p+1);
}
}
void bubble(int *p,int len)
{
int i,j,temp;
for(i=len-1;i>0;i--)
for(j=0;j<i;j++)
{
if(*(p+j)>*(p+j+1))
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}//end if
}//end for
}
void median(int *p,int n,float * med)
{
if(n%2==0)
*med= (float)*(p+(n-1)/2);
else
*med=(float)(*(p+((n-1)/2)) + *(p+(n/2)))/2;
}
void poutput(int *p,int n)
{
int i;
for(i=0;i<n;i++)
cout <<"\nStudent "<<(i+1)<<":"<< *(p+i) << " ";
cout <<endl;
}
void dynamicArr(int *p)
{
delete []p;
cout << "\nThe Array was deleted.";
}
وقتی برنامه آرایه هارا با استفاده از تابع bubble مرتب می کنه تابع poutput اونها رو به صورت اشتباهی چاپ می کنه
و تابع median که میانه آرایه هارو بدست میاره ، همیشه میانه رو صفر چاپ می کنه چرا؟
مشکل چیه؟
#include <iostream.h>
#include <conio.h>
void pinput(int *,int);
void bubble(int *,int);
void median(int *,int,float *);
void poutput(int *,int n);
void dynamicArr(int *p);
void main()
{
int *p,n;
float med=0;
cout << "Enter student number:";
cin >> n ;
p = new int[n];
pinput(p,n);
bubble(p,n);
median(p,n,&med);
cout << "Median is:" << med ;
poutput(p,n);
dynamicArr(p);
getch();
}
void pinput(int *p,int n)
{
int i=0;
for(i;i<n;i++)
{
cout << "Enter number "<<(i+1)<<":";
cin >> *(p+1);
}
}
void bubble(int *p,int len)
{
int i,j,temp;
for(i=len-1;i>0;i--)
for(j=0;j<i;j++)
{
if(*(p+j)>*(p+j+1))
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}//end if
}//end for
}
void median(int *p,int n,float * med)
{
if(n%2==0)
*med= (float)*(p+(n-1)/2);
else
*med=(float)(*(p+((n-1)/2)) + *(p+(n/2)))/2;
}
void poutput(int *p,int n)
{
int i;
for(i=0;i<n;i++)
cout <<"\nStudent "<<(i+1)<<":"<< *(p+i) << " ";
cout <<endl;
}
void dynamicArr(int *p)
{
delete []p;
cout << "\nThe Array was deleted.";
}