View Full Version : کمک برای نوشتن یک برنامه
mamali24
جمعه 06 شهریور 1388, 02:58 صبح
سلام به همگی می خوام یه برنامه بنویسم که 40 تا عدد ورودی بگیره و یک عدد k بعد ببینه که توی این 40 تا عدد ، اعدادی هستند که مجموعشون بشه k ؟ کسی میتونه این برنامه رو بنویسه ؟
clover
جمعه 06 شهریور 1388, 03:14 صبح
اگه فقط دنبال تعداد حالاتی بگرده که مجموع 2 تا عدد بشه k کار ساده ایه اما اگر تعداد حالاتی که مجموع چند عدد می تونه برابر k بشه را محاسبه کنه باید راجع به الگوریتمش فکر کرد .
حالا کدومه ؟
emadfa
جمعه 06 شهریور 1388, 07:10 صبح
فکر می کنم که الگوریتم باید به شکلی باشه که در یک حلقه تکرار k از 1 شروع بشه تا 40 ( یا n ) بعد در هر کدام از k ها با استفاده از حلقه های تودرتو همه حالت ها تست شوند.
deopen
جمعه 06 شهریور 1388, 14:00 عصر
دوستان درست گفتند این هم کد, بابت ناخوانایی متاسفم چون میخواستم دو اصل حق حداقل دسترسی و کار با اشاره گر را تمرین کنم.
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
#include<cstdlib>
using std::rand;
using std::srand;
#include<ctime>
using std::time;
#include<conio.h>
void rndSelect(int *,const int const *);
void print(const int const *,const int const *);
void find(const int const *,const int const *,const int const *);
int main() {
const int size=10;
int arr[size];
int entry;
rndSelect(arr,&size);
print(arr,&size);
cout<<"Enter : "; cin>>entry; cout<<endl;
cout<<"Your Entry is "<<entry<<endl;
find(arr,&size,&entry);
getch();
return 0;
}
void rndSelect(int *arr,const int const *size) {
srand(time(0));
for (int i=0;i<(*size);i++,arr++) {
*arr=rand()%100;
}
}
void print(const int const *arr,const int const *size) {
for (int i=0;i<(*size);i++) {
cout<<i<<"=>"<<*(arr+i)<<" ";
}
cout<<endl;
}
void find(const int const *arr,const int const *size,const int const *k) {
for (int i=0;i<(*size);i++) {
for (int j=0;j<(*size);j++) {
if ((*(arr+i)+*(arr+j))==*k && i!=j) {
cout<<"FIND THAT : "<<i<<"+"<<j<<endl;
}
}
}
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.