برنامه گفته که با استفاده از آرایه پویا n عدد double را از ورودی بگیرد و مجموع m عدد میانی را بدست بیاره
( m را هم به عنوان ورودی میگیره )
Printable View
برنامه گفته که با استفاده از آرایه پویا n عدد double را از ورودی بگیرد و مجموع m عدد میانی را بدست بیاره
( m را هم به عنوان ورودی میگیره )
سلام.
در مورد آرایه های داینامیک میتونین در C از malloc و در ++C علاوه بر اون از new استفاده کنین.
مثلا :
و بعد از استفاده با free و یا delete اون رو از حافظه آزاد کنین.کد:
C
int *pInt = (int*)malloc(10);
++C
int *pInt = new int[10];
نقل قول:
منظور شما رو متوجه نشدم اگه میشه یکم واضحتر بگید ممنون میشم
ببین مثلاً کاربر وارد می کنه که طول آرایه n است. ما اینکارو می کنیم (در C++):
در C:کد:int *arr = new int[n];
و سپس با یه حلقه n عددو می خونی.کد:int*arr = (int*)malloc(n*sizeof(int));
بعد هم با حلقۀ زیر مجموعو حساب می کنی.
البته به جای همۀ int ها double بذار (به غیر از i)کد:int sum=0;
for(int i=(n-m)/2;i<n-(n-m)/2;i++)
{
sum+= arr[i];
}
من نوشتم برنامه رو ولی نمیدونم مشکل کجاست؟
کد:#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;
}
به جای :
این قطعه کدو بذار:کد: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];
کد:int sum=0;
for(int i=(n-k)/2;i<n-(n-k)/2;i++)
{
sum+= m[i];
}
برای آرایه دو بعدی میشه این کارو کرد؟
من کد زیر رو وارد کردم:
ولی قبول نمیکنه!!!!کد:int *s=new int[n][n];
خواهشا زودتر کمکم کنید
متشکرم