PDA

View Full Version : مشکلی در برنامه ++c اگه میشه کمکم کنید



oranoos_mt
پنج شنبه 06 اردیبهشت 1386, 21:40 عصر
میخواستم بگم مشکل برنامه من چیه؟
قراره تعدادی عدد double بگیره و مرتب کنه و یک عدد مثل m بگیره و حاصل m عدد میانی را بدست بیاره اینم کدش
#include <stdio.h>
#include <math.h>
#include <iostream.h>
void out(double m[],int n)
{
int i;
for(i=0;i<n;i++)
cout<<" "<<m[i];
}
void sort(double *y,int n)
{
int i,temp;
for(i=n-1;i>0;i--)
{
for (int j=0; j<i; j++)
if(y[j+1]<y[j])
{
temp=y[j];
y[j]=y[j+1];
y[j+1]=temp;
}
}
}
void main()
{
int n,k;
cout<<"enter n : ";
cin>>n;
double *m;
m=new double[n];
for (int i=0; i<n; i++)
{
cout<<"enter m["<<(i+1)<<"] : ";
cout.flush();
cin>>m[i];
}
sort(m,n);
out(m,n);
cout<<endl;
cout<<"enter a number as low as "<<n<<" ---> ";
cin>>k;
if (k>=n)
cout<<"invalid your number"<<endl;
int t=1; int p=0; int sum=0;
while(p<k)
{
if (k<=2)
{
sum=sum+m[(n/2)+t];
break;
}
sum=sum+m[(n/2)+t];
t*=-1;
sum=sum+m[(n/2)+t];
t++; p+=3;
}
sum=sum+m[n/2];
cout<<"plus center digits of your array--->"<<sum;
delete []m;
}

RED-C0DE
یک شنبه 09 اردیبهشت 1386, 10:35 صبح
منظور از حاصل m عدد میانی یعنی حاصل جمع؟؟؟ یا چیز دیگه ای؟

oranoos_mt
یک شنبه 09 اردیبهشت 1386, 11:39 صبح
بله حاصل جمع

RED-C0DE
یک شنبه 09 اردیبهشت 1386, 12:13 عصر
می تونی بگی الان برای این لیست جوابها چی می شه ؟

اندازه لیست = 4
{10,20,30,40}

وقتی m=1 ؟
وقتی m=2 ؟
وقتی m=3 ؟

powerboy2988
سه شنبه 11 اردیبهشت 1386, 09:41 صبح
آموزش ++c :
www.powerboy2988.persianblog.com

RED-C0DE
یک شنبه 23 اردیبهشت 1386, 22:25 عصر
این به زبان ++C.. یکم تغییرات باید بدی :

جمع دو عدد N رقمی :


#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

string Add(string n1 , string n2 )
{
string _Sum="";
int carry=0 , i1=0,i2=0 , tmp=0 ,R=0;

for(i1=n1.size()-1 , i2=n2.size()-1; i1>=0 && i2>=0; i1-- ,i2--)
{
tmp = (n1[i1]-48) + (n2[i2]-48) + carry;
R = tmp % 10;
carry = tmp / 10;
_Sum.push_back(R+48);
}

// agar k ragham-e ezafi az n1 moonde bashe be Sum ezafe kon :
while(i1>=0)
{
tmp = (n1[i1--]-48) + carry;
R = tmp%10;
carry = tmp/10;
_Sum.push_back(R+48);
}

// agar k ragham-e ezafi az n2 moonde bashe be Sum ezafe kon :
while(i2>=0)
{
tmp = (n2[i2--]-48) + carry;
R = tmp%10;
carry = tmp/10;
_Sum.push_back(R+48);
}

if(carry) //adding carry :
_Sum.push_back('1');

// removing 00000 before of number :
for(int i=_Sum.length()-1; i>=0; i--)
{
if(_Sum[i]=='0')
_Sum.erase(i);
else
break;
}

//reversing the SUM :
reverse(_Sum.begin(),_Sum.end());

return _Sum;
}

int main()
{
string s1,s2;
while(cin >> s1 >> s2 && s1!="0" || s2!="0")
cout << Add(s1,s2) << endl;

return 0;
}