به نقل از amoo.majid :با توجه به این که مقدار divisor از دو به توان سی و یک منهای دو بیشتر نمیشه، اورفلو میکنه. چون توش هیجده فاکتوریل رو هم ذخیره میکنید و این عدد بزرگیه!
احتمالن کار این طوری پیش میره که:
divisor از محدوده ی اینت که خارج میشه بعدش، به یه جایی میرسه که بیشتر از ۳۰ تا عامل ۲ داره و این یعنی که ۳۱ بیت سمت راست divisor صفر هستن، که اگه این طوری باشه، divisor صفر میشه و num / divisor میشه inf و توی مراحل بعدش هم nan!
من مطمئن نیستم که این کمکتون کنه ولی امتحان کنیدبه نقل از هامـون :اون خطی که اعداد tab خوردن رو ببینید٬ آخرین عدد ۸۹ بوده که ۹ش رفته خطّ بعدی. دستور خاصی هست که ازین رفتار جلوگیری کنه؟ ضمنا نمیخوام هر عدد توی یه سطر جدا باشه٬ ترجیحا tab بینشون باشه.
![]()
cout << value << setw(4);
به نقل از هامـون :اون خطی که اعداد tab خوردن رو ببینید٬ آخرین عدد ۸۹ بوده که ۹ش رفته خطّ بعدی. دستور خاصی هست که ازین رفتار جلوگیری کنه؟ ضمنا نمیخوام هر عدد توی یه سطر جدا باشه٬ ترجیحا tab بینشون باشه.
صرفاً یک پیشامد خاص رو به یک پیشامد خاص دیگه تبدیل میکنیم با اینکار. مشکل اصلی حل نمیشه.به نقل از amoo.majid :من مطمئن نیستم که این کمکتون کنه ولی امتحان کنید
یعنی به جای '\t' از setw(4) استفاده کنید!کد:cout << value << setw(4);
صرفن حجم تب رو کم میکنه![]()
به نقل از امیـــ ع ـــر :
بخاطر اندازه پنجره هست که اون 9 میره پایین؛ چیزی که به ذهن من میرسه اینکه اول اندازه پنجره رو بگیرید بعد هم با توجه به اندازه هر کارکتر عددی و تب حالت های اینشکلی رو مدیریت کنید.
احتمالا کد های آماده ای هم برای اینکار باشه.
راه دیگه هم formatted printing هست، که باید سلیقه به خرج بدید مثلا هر 5 تا عدد رو یک ستون چاپ کنه، اگه یه رقمی بود دو تا صفر بذاره بغلش، از اینجور کار ها:
http://www.cplusplus.com/reference/cstdio/printf/
http://stackoverflow.com/questions/11226143/formatting-output-in-c
(معمولا چون اندازه صفحه ها تقریبا ثابت هست، میتونید طوری فرم بدید که خوب دیده شه)
به نقل از هامـون :من دقیق نفهمیدم میخوای چیکار کنی ولی تا اونجایی که من فهمیدم
کدی که تو میزنی توش نمیفهمه که میخوای بعدا تو چه سایزی کدتو چک کنی و این که توی کد نمیتونی بهش بگی که وقتی به آخر کار رسیدی بیا پایین چاپ کن و بین کارکتر ها اینجوری با یک خط فاصله ننداز
اگه این مشکل رو من داشتم یک تعداد خاصی میگفتم توی یک خط چاپ کنه منطقی تر از این واقعا به ذهنم چیزی نمیاد و این که درباره ی این که تو کدت نمیتونی بهش بگی هر وقت رسیدی به آخر خط دیگه یک کارکتر اونجا نزار کارکتر بعدی خط بعد و مثل آدم بیا کامل بزار پایین رو که نمیشه هم باید منطقی باشه(شایدم نباشه نمیدونم ولی برای من منطقیه واقعا)
میتونی بشماری که کی میره خط بعد یه if بذاری در اون صورت قبلش یه space بذاریبه نقل از هامـون :اون خطی که اعداد tab خوردن رو ببینید٬ آخرین عدد ۸۹ بوده که ۹ش رفته خطّ بعدی. دستور خاصی هست که ازین رفتار جلوگیری کنه؟ ضمنا نمیخوام هر عدد توی یه سطر جدا باشه٬ ترجیحا tab بینشون باشه.
![]()
همون حالت بندی خاص ه دیگه٬ تعداد ارقام عددها مدام تغییر میکنه و کلی از پردازش رو درگیر میکنه این شمردنها...به نقل از Agent 47 :میتونی بشماری که کی میره خط بعد یه if بذاری در اون صورت قبلش یه space بذاری![]()
به نقل از هامـون :همون حالت بندی خاص ه دیگه٬ تعداد ارقام عددها مدام تغییر میکنه و کلی از پردازش رو درگیر میکنه این شمردنها...
الان من این برنامه رو نوشتم. هر چقدر ران می کنم به مشکل تو نمی خورمبه نقل از هامـون :همون حالت بندی خاص ه دیگه٬ تعداد ارقام عددها مدام تغییر میکنه و کلی از پردازش رو درگیر میکنه این شمردنها...
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
int x;
srand(time(NULL));
for (int i = 0; i < 20; i++)
{
cout << rand() % 100 <<"\t";
}
cin >> x;
return 0;
}
تا یکی دومیلیون پردازش چیز خاصی نیست!به نقل از هامـون :همون حالت بندی خاص ه دیگه٬ تعداد ارقام عددها مدام تغییر میکنه و کلی از پردازش رو درگیر میکنه این شمردنها...
به نقل از هامـون :چطور میتونیم order یک تکه برنامه رو محاسبه کنیم؟ مثلا توی این کد:
![]()
n*(n-1)/2 مقایسه انجام میشه؟ order همینه؟
به نقل از mrm :سلام .........من تو سی پلاس پلاس یه مشکلی دارم
کد زیر خط 6 عبارت رو چاپ میکنه ولی رشته ای که تو خط بعد میخوام نمیگیره.......خط های بعدیشم درست اجرا میکنه ..فقط از اون خط getline میپره چکار کنم؟؟؟؟؟؟؟؟ رشته رم درست تعریف کردم
string lesson[30];
; cin>>n
for(int i=0;i<n;i+1=i
}
cout<<"enter the name of lesson"<<i+1
getline(cin,lesson);
cout<<"enter the coefficient of lesson"<<i+1<<endl
cin>>v
ببخشید بیشتر از این نتونتستم بهم ریختگی شو درست کنم...........
#include <stdio.h>
typedef struct name{
char name[100];
}name;
int main(){
name yourString[10];
for(int i=0; i<10;i++)
scanf("%s",yourString[i].name);
for(int i=0; i<10;i++)
printf(yourString[i].name);
}
#include<iostream>
#include<vector>
using namespace std;
main()
{
vector <string> myvec;
string mystr;
int n;
cin>> n;
for(int i = 0 ; i < n ; i++)
{
cin>> mystr;
myvec.push_back(mystr);
}
for(int j = 0 ; j < n ; j++)
cout<< myvec[j]<< endl;
}