首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

繼續問 知識是問出來的 .解决方法

2012-02-14 
繼續問知識是問出來的 ._.C/C++ code#includestdio.h#includestring.hmain(){char x1[1024],x2[1024],

繼續問 知識是問出來的 ._.

C/C++ code
#include"stdio.h"#include"string.h"main(){    char x1[1024],x2[1024],y1[1024],y2[1024];                        //定義一些字符型數組    int i,j,n=0,temp;                                                //定義一些整形變量     while(scanf("%s",x1)&&scanf("%s",x2)!=EOF)                       //多次循環輸入2組字符串     {        strcpy(y1,x1);                                               //字符串備份         strcpy(y2,x2);        if(strlen(x1)!=strlen(x2))                                   //如果字符串長度不相等             {            printf("[\n]\n");                                        //輸出[]             continue;                                                //跳出此次循環 進入下次循環             }               for(i=0;i<strlen(x1);i++)                                //著手x1排序               for(j=0;j<strlen(x1) - 1 -i;j++)                if(x1[j]>x1[j+1])                {                temp=x1[j];                x1[j]=x1[j+1];                x1[j+1]=temp;                }            for(i=0;i<strlen(x2);i++)                                //著手x2排序                for(j=0;j<strlen(x2) - 1 -i;j++)                if(x1[j]>x1[j+1])                {                temp=x2[j];                x2[j]=x2[j+1];                x2[j+1]=temp;                }            if(strcmp(x1,x2)!=0||strcmp(y1,y2)==0)                    //如果原兩個字符串全等或者元素無法一一對應                 {                   printf("[\n]\n");                                  //輸出[]                    continue;                                          //跳出此次循環 進入下次循環                }                                                          }                            }


寫的一部分的代碼 發現爲什麽輸入
asdf
fdsa
會輸出[]呢......
=_= 按理說應該什麽都不做走下面該寫的地方的東西啊

[解决办法]
for(i=0;i<strlen(x2);i++) //著手x2排序
for(j=0;j<strlen(x2) - 1 -i;j++)
if(x1[j]>x1[j+1]) //***這裡錯了,應系x2?***
{
temp=x2[j];
x2[j]=x2[j+1];
x2[j+1]=temp;
}

热点排行