{char a[5][100],t;
int i,j,k,l=1;
{for(k=0;k<5;k++)
{for(i=1;i<=100;i++)
fflush(stdin);
scanf("%c",&a);
}
}
#include "stdio.h" #include"string.h" void main() { char a[5][100]={0},t; int i,j,k,l=1;
for(k=0;k<5;k++) { //for(i=1;i<=100;i++) //fflush(stdin); scanf("%s",&a[k]); }
for(k=0;k<5;k++) { for(j=1;j<=(strlen(a[k])-1);j++) { for(i=1;i<=((strlen(a[k])-1)-j);i++) { if(a[k][i]>a[k][i+1]) {t=a[k][i];a[k][i]=a[k][i+1];a[k][i+1]=t;} } } } printf("number:\n"); for(k=0;k<5;k++) {for(i=0;i<=strlen(a[k]+1);i++) printf("%c",a[k][i]); printf("\n"); } } 你看看那对吗? 还有你说的 例如输入五个字符串 qwer tyu iop asd gha 运行结果应该是 eqrw tuy iop ads agh 我运行的是: qwer tyu iop asd gha number: qerw tuy iop ads gah Press any key to continue...
/* 从键盘输入5个字符串,用起泡法对这5个字符串排序 提示: 可以定义一个二维字符数组char str[5][100], 分别将5个从键盘输入的字符串存到str[i]中(i =0 ~ 4). 请问我做的那个地方错了阿! */
#include <stdio.h> #include <string.h>
int main() { char a[5][100],t; char change[100]; int i,j,k,l=1; for(k=0;k<5;k++) { printf("please enter a[%d][100]'s result.\n",k); gets(a[k]); } for(i=0;i<5;i++) { for(j=i+1;j<5;j++) if(strcmp(a[j],a[i])<0) { strcpy(change,a[j]); strcpy(a[j],a[i]); strcpy(a[i],change); } } puts("the matrix after sorting is as following:"); for(k=0;k<5;k++) printf("a[%d][100]=%s\n",k,a[k]);
return 0; }