竹園論壇

標題: toj 123 [打印本頁]

作者: 林宇翔    時間: 2014-8-14 18:48
標題: toj 123
本帖最後由 林宇翔 於 2014-8-20 17:23 編輯

請各位幫我看一下
在電腦執行完全無誤
可是上傳後卻是WA
[C++] 純文本查看 復制代碼
#include<iostream>
using namespace std;
int main()
{
        int a,d=0;
        cin>>a;
        int up[a-1],down[a-1];
        
        for(int e=0;e<=a-1;e++)
        {
                cin>>up[e];
        }
        for(int e=0;e<=a-1;e++)
        {
                cin>>down[e];
        }
        
        for(int b=0,c=1;b<a || c<a;b++,c++)
        {
                if((up==0 || up[c]==0) && (down==0 || down[c]==0))
                {
                        cout<<"FENESTRATION FORTIFICATION FAILURE!"<<endl;
                        break;
                }
                else
                {
                        d=d+1;
                }
        }
        //cout<<d;
        if  (d != 0)
                {
                        
                        cout<<"FENDED OFF!"<<endl;
                }
        return 0;
}

作者: visitorIKC    時間: 2014-8-14 20:22
請注意範例輸入:

6
110111
011100

數字間沒有空格
作者: domen111    時間: 2014-8-14 20:44
建議你在電腦測試的時候可以把文字複製起來貼上,不要手動打,否則容易有類似的問題。
像我剛剛跑你這個程式直接貼題目的範例測資就看得出錯誤了

作者: 林宇翔    時間: 2014-8-16 17:57
那請問
要如何把一串數字分開
作者: Sylveon    時間: 2014-8-16 19:39
把它當字元處裡,不要忘了,輸入的東西除了數字,你也可以把它當作是文字


作者: 林宇翔    時間: 2014-8-17 19:26
可以給個範例嗎
作者: Sylveon    時間: 2014-8-17 21:59
C++ string範例

[C++] 純文本查看 復制代碼
#include<iostream>
using namespace std;

int main()
{
        string s;
        int len;
        cin >> s;
        len = s.size(); // 取得字串長度
        for(int i=0; i<len ;++i)
        {
                cout<<"第"<< i <<"個字 : "<< s <<endl;
        }
}


C++ C style string 範例
這裡有一個問題在於判斷字串結尾的方法,可歸納為兩寫法:
1. 用strlen先求出長度,那架構跟C++ string的範例是一樣的

[C++] 純文本查看 復制代碼
#include<iostream>
#include<cstring> //For strlen
using namespace std;

int main()
{
        char s[100]; //100 : 可容納的字數-1
        int len;
        cin >> s;
        len = strlen(s); // 取得字串長度
        for(int i=0; i<len ;++i)
        {
                cout<<"第"<< i <<"個字 : "<< s <<endl;
        }
}


2.利用字串結束字元 \0 的值等於 0 來判斷結尾
[C++] 純文本查看 復制代碼
#include<iostream>
using namespace std;

int main()
{
        char s[100]; //100 : 可容納的字數-1
        cin >> s;
        int i = 0;
        //下三個while效果相同
        //while(s != 0)
        //while(s != '\0')
        while( s )
        {
                cout<<"第"<< i <<"個字 : "<< s <<endl;
                i++;
        }
}


作者: 林宇翔    時間: 2014-8-18 20:00
謝謝
作者: 林宇翔    時間: 2014-8-19 17:26
這程式加了 取得字串長度 後變得無法判斷
請問各位學長
到底錯在哪裡
[C++] 純文本查看 復制代碼
#include<iostream>
using namespace std;
int main()
{
        int a,d=0,i=0,j=0;
        cin>>a;
        string up,down;
        for(i=0;i<a;i++)
        {
                cin>>up;
                i = up.size(); // 取得字串長度
                //cout<<i;
        }
        for(j=0;j<a;j++)
        {
                cin>>down;
                j = down.size(); // 取得字串長度
        }
        i=i-1;
        j=j-1;
        /*for(int e=0; e<i ;++e)
    {
        cout<<"第"<< e <<"個字 : "<< up[e] <<endl;
    }*/
        //cout<<i<<endl<<j<<endl;
        for(int b=0,c=1;b<i-1 || c<i-1;b++,c++)
        {
                cout<<up<<up[c]<<endl<<down<<down[c]<<endl<<endl;
                //cout<<"1";
                if((up==0 || up[c]==0) && (down==0 || down[c]==0))
                {
                        cout<<"FENESTRATION FORTIFICATION FAILURE!"<<endl;
                        break;
                }
                else
                {
                        //cout<<"1234536";
                        d=d+1;
                }
        }
        //cout<<d;
        if  (d != 0)
                {
                        
                        cout<<"FENDED OFF!"<<endl;
                }
        return 0;
}





歡迎光臨 竹園論壇 (http://forum.tfcis.org/) Powered by Discuz! X3.2