
نوشته اصلی توسط
moongirl
دارم یه برنامه شبیه سازی ساده واسه تمرین دانشگاهم می نویسم.
می خوام یه خروجی از متغیرهام بگیرم. دستوری که دادم اینه
cout<<time<<" "<<LQ<<" "<<LS<<" |"<<B<<" "<<E<<" "<<ES<<" |"<<endl;
البته توی یه حلقه while که هرکدوم از این متغیرها مرتب عوض میشن. خروجیم رو می خوام به صورت مرتب دربیارم که مثلا ستون اول همه زمان ها به صورت مرتب و زیر هم قرار بگیرن. وقتی که یک رقمی هستن جدولم مرتبه اما وقتی یکیشون دورقمی می شه کل جدول به هم میخوره البته دلیلش رو می دونم. دلیلش اینه که تعداد فاصله هایی که بعد هرکدوم از متغیرها قرار دادم ثابته و وقتی تعداد رقم ها زیاد میشه دیگه نمیتونه مرتب بمونه. اما نمیدونم راه حلش چیه. اگر کسی می دونه که می تونم چه جوری حلش کنم لطفا کمکم کنه

نوشته اصلی توسط
TAHA
با سلام
دوست عزيز
اگر بشه كل برنامه رو بزاريد بهتر مي تونيم كمكتون بكنيم

خوب خودم سريعتر براش يك راه حل پيدا كردم كه خدمتتون ارايه مي شود:
این کدی که نوشتم همین کار رو میکنه فقط با ارایه ها این کارو میکنه ، چون فقط میخوام بهت نشون بدم که چطور این کار رو بکنی.
کد:
#include <iostream.h>
#include <stdio.h>
#include <string.h>
const int A = 2,B = 6;
int a[A][b]={0,555,99,156666,14,89,
4444,5,313,10,0,765};
int s[b] ={0,0,0,0,0,0};
void main (void)
{
int i,j,len;
char buff[20];
for(i = 0;i < A;i++)
{
for(j = 0;j < B;j++)
{
sprintf(buff,"%d",a[i][j]);
len = strlen(buff);
if(s[j] < len)
{
s[j] = len;
}
}
}
for(i = 0;i < A;i++)
{
for(int j = 0;j < B;j++)
{
sprintf(buff,"%d",a[i][j]);
len = strlen(buff);
len = s[j]-len;
cout<<a[i][j];
for(int k = 0;k < len+2;k++)
cout<<" ";
}
cout<<endl;
}
}
کاری که شما باید انجام بدی اینه که هر عددی رو که میخواهی چاپ کنی ، طولش رو در یک متغییر قرار بدی و
در دور بعدی که دوباره میخواهی اون متغییر رو نشون بدی ، دوباره طولش رو بدست بیاری و از طولی که در اون متغییر ذخیره کردی کم کنی و به اندازه ی مقدار بدست آمده فاصله چاپ کنی .