PDA

View Full Version : نوشتن اعداد در 7 ستون یه مشکل خیلی ساده در C



St4r-S4t
شنبه 16 آبان 1388, 13:54 عصر
با سلام
من یه پروژه دارم در C که خیلی سخت نیست باید یه تقویم بسازم اما مشکل اینجاست که فرمت چاپ اعداد باید این طوری باشه مثلا :

SHANBE 1SHANBE 2SHANBE 3SHANBE 4SHANBE 5SHANBE JOME
01----------02---------03---------04--------05--------06-------07
08----------09--------10---------11---------12--------13-------14
و همینجوری تا 31 !! البته جای - همون space باید باشه برای خوب نشون داده شدن اینکارو کردم .
من یه حلقه ساده FOR نوشتم برای i از 1 تا 31 و مشکلی نداره اما مشکل اینجاست که اعداد رو زیر هم و در 7 ردیف چاپ نمی کنه !!
کسی می تونه بگه مشکل چیه ؟؟ من از++ compile Dev c استفاده می کنم ...
در 10 ردیف و 6 ردیف و 5 ردیف میشه جور بشن زیر هم ولی 7 ردیف نمیشه که نمیشه !!

for(i=1;i<=31;i++)
{
printf(" %3.2d\t " ,i);
}

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

tdkhakpur
شنبه 16 آبان 1388, 21:44 عصر
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
int main()
{
char *days={"Shanbe 1Shanbe 2Shanbe 3Shanbe 4Shanbe 5Shanbe jome "};
char daysNum[72]={0}, tmp[11];
int i;
printf("\n%s", days);
memset(daysNum, 32, 70);
for(i=1;i<=31;i++){
if( (i-1)%7==0 && (i-1)>0){
printf("\n%s", daysNum);
memset(daysNum, 32, 70);
}
memset(&daysNum[(i-1)%7*8], 32, 8);
itoa(i, tmp, 10);
memcpy(&daysNum[(i-1)%7*8], tmp, strlen(tmp));
}
printf("\n%s", daysNum);
getch();
return 0;
}

m.soleimani
شنبه 16 آبان 1388, 22:23 عصر
با سلام
من یه پروژه دارم در C که خیلی سخت نیست باید یه تقویم بسازم اما مشکل اینجاست که فرمت چاپ اعداد باید این طوری باشه مثلا :

و همینجوری تا 31 !! البته جای - همون space باید باشه برای خوب نشون داده شدن اینکارو کردم .
من یه حلقه ساده FOR نوشتم برای i از 1 تا 31 و مشکلی نداره اما مشکل اینجاست که اعداد رو زیر هم و در 7 ردیف چاپ نمی کنه !!
کسی می تونه بگه مشکل چیه ؟؟ من از++ compile Dev c استفاده می کنم ...
در 10 ردیف و 6 ردیف و 5 ردیف میشه جور بشن زیر هم ولی 7 ردیف نمیشه که نمیشه !!

for(i=1;i<=31;i++)
{
printf(" %3.2d\t " ,i);
}

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

فکر کنم این بیشتر به کارت بیاد تا جایی که من متوجه شدم مهم برات یادگرفتن روش انجام کار بود به هر حال موفق باشی

#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
#define Day 30
int main()
{
int count = 0;
char* weekDay[]={"Shanbe", "1Shanbe", "2Shanbe", "3Shanbe", \
"4Shanbe", "5Shanbe", "jome"};
for(int c = 0; c < 7; C++‎‎)
cout << setw(10) << weekDay[c];
cout << endl;
for(int i = 0; i <= Day; i++)
{
cout << setw(10) << i;
count++;
if(count == 7)
{
count = 0;
cout << endl;
}
}
cout << endl;
getch();
return 0;
}

ویرایش برای رفع مشکل املایی

St4r-S4t
سه شنبه 19 آبان 1388, 13:35 عصر
دوستان دو مسئله یکی اینکه این سورس ها که نوشتین سطحش خیلی بالا هست و خیلی از این توابع رو نخوندیم هنوز ... دوم اینکه یه مشکلی هست اگه مثلا اول ماه دوشنبه باشه و دوشنبه 1 ام بشه حساب کتاب این کد ها که دادین بهم می ریزه !! یعنی بعضی اوقات ممکنه اینجوری بشه :

SHANBE 1SHANBE 2SHANBE 3SHANBE 4SHANBE 5SHANBE JOME
01----------02--------03---------04-------05
06----------07--------08---------09---------10--------11-------12

با تشکر

m.soleimani
چهارشنبه 20 آبان 1388, 17:12 عصر
دوستان دو مسئله یکی اینکه این سورس ها که نوشتین سطحش خیلی بالا هست و خیلی از این توابع رو نخوندیم هنوز ... دوم اینکه یه مشکلی هست اگه مثلا اول ماه دوشنبه باشه و دوشنبه 1 ام بشه حساب کتاب این کد ها که دادین بهم می ریزه !! یعنی بعضی اوقات ممکنه اینجوری بشه :

SHANBE 1SHANBE 2SHANBE 3SHANBE 4SHANBE 5SHANBE JOME
01----------02--------03---------04-------05
06----------07--------08---------09---------10--------11-------12

با تشکر
شرط‌ها را خوندی که به جای اون روزهایی که قبل از روز شروع هستن فقط از فاصله‌ها استفاده کن