واضح آرشیو وب فارسی:سایت ریسک: در مورد ارایه ها در ++ c oranoos_mta 08 ارديبهشت 1386, 08:45میخوام برنامه ای بنویسم که n عدد 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; } saalek110 08 ارديبهشت 1386, 17:00بسته به زوج یا فرد بودن n & k حالات مختلفی پیش می آید که نمی شود میانه را پیدا کرد. پس چون صورت مسئله گنگ است من جوابی ساده بدون بحث این زوج و فرد بودن ها نوشتم: // 1 -> n double begirad // 2 -> moratab konad // 3 -> majmoe m adade miani ra chap konad.(m ham hz vorodi.) #include <stdio.h> #include <math.h> #include <iostream.h> //#include <conio.h> // for getch() void my_out(double m[],int n) { int i; for(i=0;i<n;i++) cout<<" "<<m[i]; } void my_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]; } my_sort(m,n); my_out(m,n); cout<<endl; cout<<"enter a number as low as "<<n<<" ---> "; cin>>k; if (k>=n) cout<<"invalid your number"<<endl; int sum=0;//int t=1; int p=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 difference=n-k; // bebinim sar va tahe araye cheghadr baghi mimanad int ebteda=int(difference/2); // sahme avale araye che ghadr ast for(int i2=ebteda;i2<ebteda+k;i2++) // be tedade k jame mizanim { sum=sum+m[i2]; } cout<<"plus center digits of your array--->"<<sum; delete []m; // getch(); // for turbo c 3.0 } // end of main
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3104]