0

我做错了什么?我需要这个,用'if'打印所有大写字母,但出了点问题,因为它不止一次打印一个字母!任何帮助表示赞赏:)

//Uppercase letters using if;
#include<iostream>
using namespace std;

int main()
{
    char character='A';
label1:
if(character>='A')
    if(character>='Z')
        goto label2;
    else
    {
        cout<<character<<endl<<character++<<endl;
        goto label1;
    }

label2:
    cout<<"End"<<endl;
    return 0;
}
4

4 回答 4

3

您将character变量增加两次。我发布这个答案只是为了向您展示什么是技术错误,但还有一个更大的概念性错误,即使用goto. 我建议你阅读一些关于 C++ 的介绍性书籍。

//Uppercase letters using if;
#include<iostream>
using namespace std;

int main()
{
    char character='A';

label1:
if(character>='A')
    if(character>'Z'))
        goto label2;
    else
    {
        cout<<character<<endl;
        character++;
        goto label1;
    }

label2:
    cout<<"End"<<endl;
    return 0;
}
于 2013-01-05T21:50:02.657 回答
2

有点晚了,但是:

#include "stdafx.h"
#include<iostream>
#include <string>

using namespace std;

int main()
{
    string s("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
    if (1) goto label1;
    cout << "End" << endl;
    return 0;
label1:
    cout << s << endl;
    return 0;
}
于 2013-01-05T22:35:27.690 回答
2

它多次打印每个字母的原因如下:

    cout<<character<<endl<<character++<<endl;
          ^^^^^^^^^        ^^^^^^^^^

以上每一项都会导致character被写入cout.

于 2013-01-05T21:49:53.267 回答
1

您的代码遗漏了两点-

  1. 它没有打印Z
  2. 两次打印字符cout<<character<<endl<<character++<<endl;

更改:更改 if(character>='Z') 为 -> if(character>'Z')

编辑字符++(这是错字) cout<<character<<endl<<character++<<endl; 到-> cout<<character++<<endl;

于 2013-01-05T22:04:19.340 回答