ببخشید شما برنامه ی منو خوندید؟نقل قول:
اگر یه بار اجرا بشه مشکلش مشخص میشه!
Printable View
ببخشید شما برنامه ی منو خوندید؟نقل قول:
اگر یه بار اجرا بشه مشکلش مشخص میشه!
شما هر بار که ورودی می گیرین ورودی قبلی رو از دست می دین . اینو می دونستین ؟
باید از آرایه دوبعدی استفاده کنین . به صورت پویا .
سلام
برای جابه جا کردن دوتا سطر از یه آرایه دوبعدی روشی هست که مجبور به تعریف آرایه اضافی نباشم؟
سلام.
هميشه راهي هست!
اگه منظورتون رو درست فهميده باشم:
با عكس كردن حلقه بيروني ميشه اين كار رو كرد.
اينو ببين:
کد:#include<stdio.h>
#include<conio.h>
main()
{
int a[2][2],i,j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
for(i=1;i>=0;i--){
for(j=0;j<2;j++)
printf("%d",a[i][j]);
printf("\n"); }
getch();
}
نقل قول:
متشکرم منظورم همین بود اما میخوام که خود آرایه تغییر کنه !
(در اصل برای یه آرایه ی n سطری باید بررسی بشه اگر یه شرط خاصی برقرار بود سطرها رو جابجا کنه )
خود سوال چيه ؟نقل قول:
البته پروژه انجام نميدم, سورس رو برا درك بهتر گذاشتم.
به هر حال سوال رو مطرح كنيد اگه بلد بودم در خدمتتون هستم
مسئله ی خاصی نیست!یه آرایه ی دوبعدی درنظر بگیرید که توی هرسطر یه اسمی هست حالا من میخام به ترتیب حروف الفبا مرتبش کنم یعنی کدهای کاراکترها رو مقایسه کنه و جابه جا کنه...همین!نقل قول:
(البته من این برنامه رو طور دیگه نوشتم و جواب داده اما به نظرم رسید شاید این راه بهتر باشه....)
درضمن من درخواست پروژه نکردم!!!!!!!!!!!!!!!!
ترجیح میدم تحت هرشرایطی برنامه هام رو خودم بنویسم.فقط درخواست راهنمایی کردم!همین!
اين جوري سخت ميشه!
بهتره از روش هاي مرتب سازي استفاده كنيد.
روش های مرتب سازی.....؟درمورد کاراکتر ها؟نقل قول:
برنامه ها رو ببين, دو روش مرتب سازي
يه رشته ازت ميگره كاراكتر به كاراكتر مرتب ميكنه:
کد:#include <stdio.h>
#include <conio.h>
#include <string.h>
void shell(int *, char *, int);
int main()
{
char s[80];
int gap[80];
clrscr();
printf(" enter a string :");
gets(s) ;
shell(gap, s, strlen(s));
printf("\n the sorted string is: %s", s);
getch();
return 0;
}
//********************
void shell(int gap [], char *item , int count)
{
register int i, j, step, k, p;
char x ;
k = 0;
gap[0] = count / 2;
while(gap[k] > 1) {
k ++;
gap[k] = gap[k - 1] / 2;
}//end of while
for(i = 0; i <= k; i++) {
step = gap[i] ;
for(j = step; j < count; j++) {
x = item[j];
p = j - step;
while(p >= 0 && x < item[p]) {
item[p + step] = item[p];
p = p - step;
}
item[p + step] = x;
}
}
}
کد:#include <stdio.h>
#include <conio.h>
#include <string.h>
void quick(char *, int, int);
int main()
{
char s[80];
clrscr();
printf(" enter a string :");
gets(s) ;
quick(s, 0, strlen(s) - 1);
printf("\n the sorted string is: %s", s);
getch();
return 0;
}
//**************
void quick(char item[], int left, int right)
{
register int i, j;
char x, y ;
i = left;
j = right;
x = item[(left + right) / 2];
do {
while(item[i] < x && i < right) i++ ;
while(x < item[j] && j > left) j -- ;
if(i <= j) {
y = item[i] ;
item[i] = item[j];
item[j] = y;
i++ ;
j -- ;
}//end of if
} while(i <= j);
if(left < j) quick(item, left, j) ;
if(i < right) quick(item, i, right);
}