PDA

View Full Version : سوال: خطا در کد



hafez1
یک شنبه 14 مهر 1392, 22:47 عصر
سلام دوستان.
یه برنامه نوشتم که 1000 تا ورودی از یه فایل میخونه و میریزه تو یه آرایه.و بعد یک سری توابع آماری رو روی عددا محاسبه میکنه ولی یه ارور داره مربوط به تابع مرتب سازیمه.ممنون میشم کمکم کنید.


#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
int exchangesort( int arrey[]);

void main()
{

int arrey [1000] ;
int i = 0 ;
float sum = 0 ;
float avg , mid , max , min , charak1 , charak3 , enheraf , var ;
ifstream inputfile;
inputfile.open("read.txt");
while (!inputfile.eof())
{

inputfile>>arrey [i];
i++ ;
}

for (int j = 0 ; j<1000 ; j++)
{
sum += arrey[j] ;
}
avg = sum / 1000 ;
exchangesort(arrey[1000]);


mid = ( arrey [499] + arrey [500] ) / 2 ;
charak1 = (arrey[249] + arrey[250])/2;
charak3 = ( arrey[749] + arrey [750] ) / 2 ;
min = arrey[0] ;
max = arrey[999];
var =( (sum * sum) - (avg * avg ) ) / 1000 ;
enheraf = sqrt ( var) ;
cout<<"avrage =" << avg<<endl ;
}

int exchangesort ( int arrey[1000])
{
for (int i = 1 ; i < 999 ; i++ )
{
for ( int j = i+1 ; j <=1000 ; j++ )
{
if (arrey[j] < arrey[i])
{
int item=arrey[j];
arrey[j]=arrey[i];
arrey[i]=item;
}

}
}
return arrey[1000];
}

rahnema1
دوشنبه 15 مهر 1392, 05:45 صبح
ببین چه طور شد:



#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
void exchangesort( int *arrey);
int main()
{
int arrey [1000] ;
int i = 0 ;
float sum = 0 ;
float avg , mid , max , min , charak1 , charak3 , enheraf , var ;
ifstream inputfile;
inputfile.open("read.txt");
while (!inputfile.eof())
{inputfile>>arrey [i];i++ ;}
for (int j = 0 ; j<1000 ; j++)
{sum += arrey[j] ;}
avg = sum / 1000 ;
exchangesort(arrey);
mid = ( arrey [499] + arrey [500] ) / 2 ;
charak1 = (arrey[249] + arrey[250])/2;
charak3 = ( arrey[749] + arrey [750] ) / 2 ;
min = arrey[0] ;max = arrey[999];
var =( (sum * sum) - (avg * avg ) ) / 1000 ;
enheraf = sqrt ( var) ;cout<<"avrage =" << avg<<endl ;
return 0;
}
void exchangesort ( int *arrey)
{
for (int i = 1 ; i < 999 ; i++ )
{
for ( int j = i+1 ; j <=1000 ; j++ )
{
if (arrey[j] < arrey[i])
{int item=arrey[j];arrey[j]=arrey[i];arrey[i]=item;}
}
}
}

Sarv 123
دوشنبه 15 مهر 1392, 09:12 صبح
سلام کد جدید هم ایراد داره. البته من کلا به روش شما ایراد میگیرم ولی اگه میخواین از همین روش استفاده کنین، کد زیر کد درست است.


void exchangesort ( int arrey[1000])
{
for (int i = 0 ; i < 999 ; i++ )
{
for ( int j = i + 1 ; j < 1000 ; j++ )
{
if (arrey[j] < arrey[i])
{
int item = arrey[j];
arrey[j] = arrey[i];
arrey[i] = item;
}
}
}
}