PDA

View Full Version : سوال: اشکال این برنامه چیه؟؟؟



Faraz Mehraien
دوشنبه 25 آذر 1392, 20:29 عصر
با سلام.این برنامه قراره یه سری عدد بگیره و با ورود -1 دیگه چیزی نگیره و بعد کاربر یه عدد وارد کنه و برنامه بگه که آیا این عدد در اعداد ورودی وجود داره یه نه؟؟که من اینو با یه تابع به نام search نوشتم اما وقتی کامپایل می کنم هیچ اتفاقی نمی افته از کامپایلر dev استفاده می کنم.اینم برنامه#include <cstdlib>
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
void search(int,int,int);
int main(int argc, char *argv[])
{
int num[100];
int counter,no,len;
cout<<"enter numbers\n";
cout<<"for end enter -1\n";
for(counter=0;counter<100;counter++)
{
cin>>num[counter];
if(num[counter]==-1)
break;
}
len=counter;
cout<<"enter a number for searching\n";
cin>>no;
search(no,len,num[counter]);
cout<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}
/////////////////////////
void search(int n,int l,int num[])
{
int i,len;
for(i=0;i<l;i++)
if(num[i]==n)
cout<<"number exist in list"<<num[i]<<"its counter is="<<i;
else
cout<<"number does not exist";
getch();
}

sr2m72
دوشنبه 25 آذر 1392, 21:30 عصر
سلام، یه تغییراتی دادم.

#include <cstdlib>
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
int search(int,int,int*);
int main(int argc, char *argv[])
{
int num[100];
int counter,no,len;
cout<<"enter numbers\n";
cout<<"for end enter -1\n";
for(counter=0;counter<100;counter++)
{
cin>>num[counter];
if(num[counter]==-1)
break;
}
len=counter;
cout<<"enter a number for searching\n";
cin>>no;
search(no,len,num);
cout<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}
/////////////////////////
int search(int n,int l,int* num)
{
int i;
for(i=0;i<l;i++)
if(num[i]==n){
cout<<"number exist in list"<<num[i]<<"its counter is="<<i;
return 0;
}
cout<<"number does not exist";
return 0;
}

Faraz Mehraien
سه شنبه 26 آذر 1392, 18:23 عصر
سلام، یه تغییراتی دادم.

#include <cstdlib>
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
int search(int,int,int*);
int main(int argc, char *argv[])
{
int num[100];
int counter,no,len;
cout<<"enter numbers\n";
cout<<"for end enter -1\n";
for(counter=0;counter<100;counter++)
{
cin>>num[counter];
if(num[counter]==-1)
break;
}
len=counter;
cout<<"enter a number for searching\n";
cin>>no;
search(no,len,num);
cout<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}
/////////////////////////
int search(int n,int l,int* num)
{
int i;
for(i=0;i<l;i++)
if(num[i]==n){
cout<<"number exist in list"<<num[i]<<"its counter is="<<i;
return 0;
}
cout<<"number does not exist";
return 0;
}

اقا ممنون کار کرد .فقط یه توضیح می دی کجای برنامه ی من اشتباه بود؟؟چرا از pointer استفاده کردین؟؟

Faraz Mehraien
چهارشنبه 27 آذر 1392, 10:26 صبح
اخه کامپایلر خطی به عنوان خطا قرمز نمی کنه ولی موقع کامپایل کردن هیچ اتفاقی نمی افته؟؟اشکالش از کجاست؟؟

Mahnaz _j
پنج شنبه 28 آذر 1392, 01:08 صبح
سلام به همه دوستان
سورس کد اين برنامه رو مي خواهم
آيا کسي ميتونه کمکم کنه؟
برام خیلی مهمه!!!!!:افسرده:
منظور از روبات کلاس روباته که در خروجي کار ها خواسته شده را برگرداند
114118

sr2m72
پنج شنبه 28 آذر 1392, 12:44 عصر
اخه کامپایلر خطی به عنوان خطا قرمز نمی کنه ولی موقع کامپایل کردن هیچ اتفاقی نمی افته؟؟اشکالش از کجاست؟؟

سلام
توی Dev-C++‎ هنگام خطلا هیچ خطی قرمز نمیشه، بلکه توضیح خطلا در پایین پنجره نوشته میشه.
خطای برنامه ربطی به pointer نداشت فقط خودم اینطوری راحت تر بودم.
در هنگام فراخوانی تابع نیازی به دادن طول آرایه نیست.
search(no,len,num);
و اینکه Prototype تابع نیز باید به این صورت میشد:
int search(int,int,int[]);
و یه مشکل دیگه اینکه توی حلقه هر بار که عدد رو چک میکنه یه پیغام چاپ میکنه که نباید اینطوری باشه.

موفق باشید//

Faraz Mehraien
جمعه 29 آذر 1392, 19:06 عصر
سلام
توی Dev-C++‎ هنگام خطلا هیچ خطی قرمز نمیشه، بلکه توضیح خطلا در پایین پنجره نوشته میشه.
خطای برنامه ربطی به pointer نداشت فقط خودم اینطوری راحت تر بودم.
در هنگام فراخوانی تابع نیازی به دادن طول آرایه نیست.
search(no,len,num);
و اینکه Prototype تابع نیز باید به این صورت میشد:
int search(int,int,int[]);
و یه مشکل دیگه اینکه توی حلقه هر بار که عدد رو چک میکنه یه پیغام چاپ میکنه که نباید اینطوری باشه.

موفق باشید//

منظور از prototype چیه؟؟؟میشه بدون اشاره گر توضیح بدین؟؟

amirhossein.ha
جمعه 29 آذر 1392, 21:47 عصر
منظور از prototype زمان معرفی تابع است .

sr2m72
یک شنبه 01 دی 1392, 18:57 عصر
منظور از prototype چیه؟؟؟میشه بدون اشاره گر توضیح بدین؟؟

سلام
منظور از prototype معرفی تابع، قبل از تابع main هست.
در صورتی که تابع، بعد از تابع main نوشته شود نیاز دارد که prototype آن قبل از main معرفی شود تا تابع main بتواند آن را فراخوانی کند.
اینم همون برنامه بدون اشره گر:

#include <cstdlib>
#include <iostream>
#include <string.h>
#include <conio.h>

using namespace std;

int search(int,int,int[]);

int main(int argc, char *argv[])
{
int num[100];
int counter,no,len;
cout<<"enter numbers\n";
cout<<"for end enter -1\n";
for(counter=0;counter<100;counter++)
{
cin>>num[counter];
if(num[counter]==-1)
break;
}
len=counter;
cout<<"enter a number for searching\n";
cin>>no;
search(no,len,num);
cout<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}
/////////////////////////
int search(int n,int l,int num[])
{
int i,len;
for(i=0;i<l;i++)
if(num[i]==n)
{
cout<<"number exist in list"<<num[i]<<"its counter is="<<i;
return 0;
}
cout<<"number does not exist";
return 0;
}


موفق باشید//