PDA

View Full Version : ارور project stopped working در c++



sa1378
چهارشنبه 11 تیر 1393, 21:47 عصر
سلام
این کد به نظر خودم هم زیادی سنگینه
شاید هم کدش اشتباهه
این کد برای حل این سوال هست:
120723

لطفا اشکال های کد رو پیدا کنید و بگین
اون دلتای آخر سوال رو ول کنین فقط درصد رو میخوایم
#include <cstdlib>
#include <iostream>

using namespace std;


int main()
{
long int a[100];
int number=0;
a[0]=2;
a[1]=3;
for(long int i=2 ; i<=100;i++)
{
a[i]=a[i-1]+a[i-2];
if(a[i]>=1000000)
break;
}
for (long int j=100000;j<=999999;j++)
{
int x=0;
for(long int n=0;n<=100;n++)
{

if(j%a[n]==0)
x=1;
}
if(x==0)
{
number++;
cout<<j<<endl;
}
}
cout<<(100*number)/900000<<endl;



system("PAUSE");
return EXIT_SUCCESS;
}

2020s1371
پنج شنبه 12 تیر 1393, 00:52 صبح
فکرکنم اشتباها داری اعدای که اولوناچی نیستند رو حساب میکنی! شرط این if رو باید درست کنی
این

if(x==0) {
number++;
cout<<j<<endl;
}
رو باید تبدیل کنی به این:


if(x==1) {
number++;
cout<<j<<endl;
}
چون تا اونجایی که من فهمیدم با ایکس داری تشخیص میدی که بر حداقل یکی از این اعداد بخش پذیر هست یا نه ... اگه باشه ایکس = 1 ... اگه برهیچکدوم نباشه ایکس=0
در این صورت وقتی که ایکس==1 باشه باید به شمارنده ت یکی اضافه کنی

درمورد بقیه قسمت ها هم نظری ندارم چون خودم تازه کارم :)

sa1378
پنج شنبه 12 تیر 1393, 13:53 عصر
نه درسته
خودتون هم گفتین که اگه بر هیچکدوم بخشپذیر نباشه x=0
طبق مسئله هم اعداد اولوناچی اعدادی هستن که بر هیچیک از اعداد فیبوناچی بخشپذیر نباشن
پس اون قسمت کد درسته

احتمالا کد درسته ولی برنامه خیلی سنگین شده

از اونجایی که این سوال المپیاد کامپیوتر هست باید بشه با یه الگوریتم نوشتش که خیلی سنگین نباشه

مسعود اقدسی فام
پنج شنبه 12 تیر 1393, 16:08 عصر
خط


for(long int n=0;n<=100;n++)


رو اینطور بنویسید:



for(long int n=0;a[n]<= j ;n++)



اون آرایه تا صد پر نمی‌شه که همه بررسی بشن. اون قسمت‌هایی هم که پر می‌شن همه لازم نیست بررسی بشن.

مسعود اقدسی فام
پنج شنبه 12 تیر 1393, 16:11 عصر
و االبته


cout<<(100*number)/900000<<endl;


رو هم




cout<<(100.0*number)/900000<<endl;


بنویسید با دقت اعشاری چاپ می‌شه خروجی.

sa1378
پنج شنبه 12 تیر 1393, 18:40 عصر
ممنون درست شد

sa1378
پنج شنبه 12 تیر 1393, 18:47 عصر
این برنامه ای هست که خود آزمون توی جوابا گذاشته:
من که ازش سر در نمیارم ولی جواب این شده 24.21277778
ولی برای من شد 24.2129
بخاطر اینه که دقت مال من کمتره یا مال من یه جاییش غلطه؟
#include <iomanip>
#include <iostream>
#include <vector>
using namespace std;
const int MAX = 1000*1000;
vector<int> fibo;
int main() {
fibo.push_back(2);
fibo.push_back(3);
while (true) {
int n = fibo.size();
int k = fibo[n-1] + fibo[n-2];
if (k > MAX) break;
fibo.push_back(k);
}
int all = 0, good = 0;
for (int i=MAX/10; i<MAX; i++) {
all++;
for (int j=0; j<fibo.size() && fibo[j] <= i; j++)
if (i % fibo[j] == 0)
goto hell;
good++;
hell: ;
}
double d = double(good) / all * 100;
cout << fixed << setprecision(10) << d << endl;
system("PAUSE");
return EXIT_SUCCESS;
}

مسعود اقدسی فام
پنج شنبه 12 تیر 1393, 21:06 عصر
خطی رو که برای تغییر نوشته بودم اصلاح کردم. باید تا خود j پیش بره. یه عدد فیبوناچی ممکنه اول باشه و تا j / 2 هم مقسوم علیه نداشته باشه. پس باید تا آخر (خود عدد) بررسی بشه که مشخص بشه به عددی بخش‌پذیر هست یا نه.

در مورد دقت اعشاریهم دستورات کنترلی چاپ (setpercision و fixed) اونطور طولانی و با دقت بیشتر چاپ کردن.

محبوبه .آیدا
جمعه 13 تیر 1393, 00:19 صبح
یه سوال مسئول این سایت؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

محبوبه .آیدا
جمعه 13 تیر 1393, 00:20 صبح
من تو پروژه ه که باید اجرا کنم مشکل دارم کمکم میکنید؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟

محبوبه .آیدا
جمعه 13 تیر 1393, 00:21 صبح
متن سوال:با فشردن اعداد مقابل هر گزینه مقابل اجرا شود.
1- دریافت اسامی و نمرات دانشجویی2-دریافت نام و نمایش نمره3-چاپ معدل های دانشجویان به همراه نام آنها4-دریافت نام و تغییر نمره5-خروج

محبوبه .آیدا
جمعه 13 تیر 1393, 00:24 صبح
#include <iostream>
#include <string>

using namespace std;

int index_of_matched_name(string *str , int num , string str2)
{
for(int i = 0; i < num ; i ++)
if(str[i] == str2)
return i;
return -1;
}

int main()
{
int students_num = 0;
int lessons_num = 0;
int select = 4;
cout<<"Enter Number of students:"<<endl;
cin>>students_num;
cout<<"Enter Number of lessons:"<<endl;
cin>>lessons_num;



string *str = new string[students_num];
int** arry = new int*[students_num];
for(int i = 0 ; i < students_num ; ++i)
arry[i] = new int[lessons_num];




for(int i = 0 ; i < students_num ; i ++)
{

cout<<"Please enter the name and marks of student "<<i+1<<endl;
cout<<"Name : ";
cin>>str[i];
for(int j = 0 ; j < lessons_num ; j ++)
{
cout<<j+1<<"- ";
cin>>arry[i][j];
}
}


do
{
cout<<"select one of following menu:"<<endl<<"1- show marks of students"<<endl<<"2- show avrage of student marks"<<endl<<"3- change the marks of students"<<endl<<"4- Exit"<<endl;
cin >> select;
string str2;
string str3;
int index;
int index2;
switch (select)
{
case 1:
cout<<"Enter the name of student that you want to know the marks";
cin>>str2;
index = index_of_matched_name(str , students_num , str2);
for(int i = 0; i < lessons_num ; i++)
cout<<arry[index][i]<<" ";
cout <<endl;
break;
case 2:
for(int i = 0 ; i < students_num ; i ++)
{
float avr = 0;
for(int j = 0; j < lessons_num ; j ++)
avr += arry[i][j];
cout<<"avrage of student " <<str[i]<<" is "<<avr / lessons_num <<endl;
avr = 0 ;
}
cout <<endl;
break;
case 3:
cout<<"Enter name of student : " <<endl;
cin >> str3;
index2 = index_of_matched_name(str , students_num , str3);
if(index2 == -1)
cout<<"The student not exist!!" <<endl;
else
{
cout<<"Enter new mark for : " << str3 <<endl;
for(int i = 0 ; i < lessons_num ; i ++)
cin>>arry[index2][i];
}


break;
default:
if(select != 4)
cerr<<"ERROE : Not valid option choosed";
break;
}

}while (select != 4);

for(int i = 0; i < lessons_num; ++i)
delete [] arry[i];
delete [] arry;

delete [] str;

cin.ignore();
cin.get();
return 0;
}

محبوبه .آیدا
جمعه 13 تیر 1393, 00:24 صبح
الووووووووووووووووووووووو وووووووووووووو

محبوبه .آیدا
جمعه 13 تیر 1393, 00:28 صبح
ایمیل من fazeli65@yahoo.com است

کامبیز اسدزاده
جمعه 13 تیر 1393, 00:30 صبح
یه سوال مسئول این سایت؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟


من تو پروژه ه که باید اجرا کنم مشکل دارم کمکم میکنید؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟


متن سوال:با فشردن اعداد مقابل هر گزینه مقابل اجرا شود.
1- دریافت اسامی و نمرات دانشجویی2-دریافت نام و نمایش نمره3-چاپ معدل های دانشجویان به همراه نام آنها4-دریافت نام و تغییر نمره5-خروج


الووووووووووووووووووووووو وووووووووووووو


این چه طرز سوال پرسیدنه ؟
این سوالات رو هر جایی که دلتون خواسته پرسیدین تقریبا در هر تاپیکی به اینصورت سوال پرسیدین !!!
اینجا همه محترم هستن از صبح کار من شده حذف کردن پست های تکرای شما !

کد رو بنویسید جایی که اشکال دارید با ادب و احترام درخواست راهنمایی کنید تا دوستان و اساتید راهنمایی کنند.

اینجارو مطالعه کنید و بعد پست بزنید : http://barnamenevis.org/showthread.php?91319-%D9%86%D8%AD%D9%88%D9%87-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%B1%D8%B3%D8%AA-%DB%8C%DA%A9-%D8%AA%D8%A7%D9%BE%DB%8C%DA%A9-%D8%AF%D8%B1-%D8%AA%D8%A7%D9%84%D8%A7%D8%B1-%D9%82%D8%A8%D9%84-%D8%A7%D8%B2-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%AA%D8%A7%D9%BE%DB%8C%DA%A9-%D8%AD%D8%AA%D9%85%D8%A7-%D9%85%D8%B7%D8%A7%D9%84%D8%B9%D9%87-%D8%B4%D9%88%D8%AF-!

hadi0x7c7
جمعه 13 تیر 1393, 00:31 صبح
الووووووووووووووووووووووو وووووووووووووو


عامو اینجا چت‌روم قدیم یاهو نیستا!!!!