基本的Visual Studio 2013编程

时间:2015-02-08 19:10:01

标签: c++ visual-c++

程序必须从个人请求3个号码,然后返回这些号码的最大和第二个号码。这就是我所拥有的:

{
    int num1, num2, num3;
    int largest, secondLargest;

    printf("Enter number 1: ");
        scanf("%d",&num1);
    printf("Enter number 2: ");
        scanf("%d",&num2);
    printf("Enter number 2: ");
        scanf("%d",&num3);
        {
    if(num1>num2);
        largest=num1;
        if(num3>num1);
        secondLargest=num1;
            largest=num3;

    printf("The largest number is: %d\n"),largest;
    printf("The second largest number is: %d"),secondLargest;
        }

    return 0;
}

非常具体,输出必须遵循以下格式

输入数字1:27

输入数字2:36

输入数字3:12

最大的数字是:36

第二大数字是:27


当我运行该程序时,它会返回疯狂的大数字,这让我相信我错过了一些非常简单的东西,或者我对即使是这样的基本程序所需的内容也有所了解。

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:3)

要么您的代码格式错误,要么您不熟悉if语句。无需在;之后添加if(something)

if(num1>num2)
    largest=num1;
if(num3>num1) {
    secondLargest=num1;
    largest=num3;
}

此外,在最后scanf()和最后printf()之后有两个奇怪的花括号。

答案 1 :(得分:2)

首先,他们是否也需要使用printf

printf("The largest number is: %d\n"),largest;
printf("The second largest number is: %d"),secondLargest;

这不是函数的正确语法。没有参数的格式说明符可能会注入垃圾。

printf("The largest number is: %d\n",largest);
printf("The second largest number is: %d",secondLargest);

这是正确的方法,但你也有其他问题,但这应该可以解决垃圾的输出问题。

答案 2 :(得分:2)

在C ++中,if语句如下所示:

if (condition) {
    Do this..
} else {
    Do that...
}

如果条件适用,如果只应执行一行,则花括号是可选的。 else子句也是可选的。

其次,您的printf来电是错误的。 所有参数必须在parantheses内,否则它们不会被编译为参数。另外,在上次printf来电时添加换行符。

答案 3 :(得分:0)

  1. 您错误地使用了if个表达式。您不得使用;条件if结束。
  2. 你忘了考虑所有的情况。
  3. 您使用printf()不正确!
  4. 这是您的代码的一部分:

    if(num1>num2);
     largest=num1;
            if(num3>num1);
            secondLargest=num1;
                largest=num3;
    

    这等于:

    if(num1>num2)
        {
        }
    largest=num1;
    if(num3>num1)
        {
        }
    secondLargest=num1;
    largest=num3
    

    因此,首先您必须从;行的末尾删除if个字符,然后在需要的地方添加{}(您希望在{}中运行更多的一行命令{1}}表达式):

    if

    以上代码是否正常?不!

    为什么?

    假设:

    if(num1>num2) largest=num1; if(num3>num1) { secondLargest=num1; largest=num3; } num1=10num2=15

    在这种情况下会发生什么?没有,作为num3=5num1<num2该计划会跳过num3<num1个表达式,而您的iflargest变量不会被初始化。您在输出中看到的值是您在定义它们时分配给它们的随机值。

    所以你必须添加所有情况。

    最后,您必须使用secondLargest,如下所示:

    printf()

    最终的计划如下:

    printf("The largest number is: %d\n",largest);