PDA

View Full Version : سوال: مشکل این کد؟؟؟؟؟؟؟؟؟



sadegh-hut
سه شنبه 31 فروردین 1389, 12:28 عصر
void sort_name(int,char[30]);
void main(){
clrscr();
char name[30]={0};
int n,i;
printf("Enter number of students:");
scanf("%d",&n);
for(i=0;i<n;i++){
clrscr();
printf("Name of student no.%d: ",i+1);
scanf("%s",name[i]);
}
sort_name(n,name);
clrscr();
for(i=0;i<n;i++)
printf("\n%s",name[i]);
}
//************************************************** *********
void sort_name(int n,char name[30]){
int i,j;
char temp[30];
for(i=1;i<n;i++)
for(j=0;j<n-i;j++){
if(strcmp(name[j],name[j+1])>0){
strcpy(temp,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],temp);
}
}
}

این کد قسمتی از یه برنامه است که باید رشته های وروودی رو بر اساس الفبا مرتب کنه البته مشکل اصلیه من توی ارسال name به تابع است


کمک!!!!!!!!

zmmehrdad
سه شنبه 31 فروردین 1389, 14:53 عصر
تو می خوای چند تا رشته داشته باشی ولی با اون تعریف متغیر فقط یک رشته تعریف شده
باید اینطوری بنویسی


void sort_name(int,char[][50]);
void main(){
clrscr();
char name[30][50];
int n,i;
printf("Enter number of students:");
scanf("%d",&n);
for(i=0;i<n;i++){
clrscr();
printf("Name of student no.%d: ",i+1);
scanf("%s",name[i]);
}
sort_name(n,name);
clrscr();
for(i=0;i<n;i++)
printf("\n%s",name[i]);
}
//************************************************** *********
void sort_name(int n,char name[][50]){
int i,j;
char temp[50];
for(i=1;i<n;i++)
for(j=0;j<n-i;j++){
if(strcmp(name[j],name[j+1])>0){
strcpy(temp,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],temp);
}
}
}