#14156: 求救~~


henryjin90 (henryjin)

學校 : 國立花蓮高級中學
編號 : 72522
來源 : [114.44.202.40]
最後登入時間 :
2018-09-25 23:01:13
d545. 2. 抽紙牌(poker) -- 98學年度台北市資訊學科能力競賽 | From: [118.169.195.79] | 發表日期 : 2018-06-17 16:35

第三行的輸入內容(正整數 M,代表要找的是第 M 大的牌)一直讀不到

輸入完第二行就出現   Program ended with exit code: 0

請問要怎麼修改??

程式碼如下

#include<stdio.h>

#include<string.h>

int changeFlower(char c);

int main()

{

    int sheets,m,i,j=0,k;

    while( scanf("%d",&sheets)!=EOF );

    {

        char a[sheets+5];   //原來存入的陣列

        int poker[sheets+5];    //新的撲克排列陣列

    

        for (int i = 0; i < 2*sheets; ++i) scanf("%c", &a[i]);

        scanf("%d",&m);

    

        //poker陣列存入原輸入數字之四倍數字

        for(i=1,j=0;i<strlen(a)/2+1;i=i+2,j++)

        {

            poker[j]=a[i]*4;

        }

    

    

        //poker陣列存入字母和原輸入數字之四倍數字的數字和

        //用switch讀字母,return字母的重量數字

        for(i=0;j<strlen(a)/2+1;i=i+2,j++)

        {

            poker[j]=poker[j]+changeFlower(a[i]);

        }

    

    

        //排列poker陣列

        for(j=0;j<strlen(a)/2+1;j++)

        {

            for(k=0;k<strlen(a)/2+1-j;k++)

            {

                if(poker[k+1]>poker[k])

                {

                    int temp=0;

                    poker[k]=temp;

                    poker[k]=poker[k+1];

                    temp=poker[k+1];

                }

            }

        }

        printf("%c %c",a[2*m-1],a[2*m]);

        return 0;

    }

}

 

int changeFlower(char c)

{

    int f_num;

    switch(c)

    {

        case 'S':

            f_num=3;

            break;

            

        case 'H':

            f_num=2;

            break;

            

        case 'D':

            f_num=1;

            break;

            

        case 'C':

            f_num=0;

            break;

            

        default:

            break;

    }

    return f_num;

}

 
#15876: Re:求救~~


tang891228 (tang891228)

學校 : 國立成功大學
編號 : 61119
來源 : [140.116.1.138]
最後登入時間 :
2018-09-24 00:20:31
d545. 2. 抽紙牌(poker) -- 98學年度台北市資訊學科能力競賽 | From: [61.227.231.202] | 發表日期 : 2018-11-04 22:20

第三行的輸入內容(正整數 M,代表要找的是第 M 大的牌)一直讀不到

輸入完第二行就出現   Program ended with exit code: 0

請問要怎麼修改??

程式碼如下

#include

#include

int changeFlower(char c);

int main()

{

    int sheets,m,i,j=0,k;

    while( scanf("%d",&sheets)!=EOF );

...

while 迴圈後面多了一個分號

 
ZeroJudge Forum