【问题标题】:C Wrong Answer when squaringC 平方时答案错误
【发布时间】:2015-05-13 22:33:18
【问题描述】:

我正在通过示例使用 C 来学习 C。有一个问题,我们需要输入一个整数并将其平方并将其打印到屏幕上。我遇到了一个奇怪的错误,无论我输入什么 Int 都会给我这个输出:

Please enter a number.
5
Number = 2686764         Square of Number = 2686760

这是我写的程序。

#include <stdio.h>
#include <conio.h>   //for getch()


main(){

    int number, square;

    printf("Please enter a number. \n");
    scanf("%d", &number);
    square = number*number;
    printf("\n Number = %d ", &number);
    printf("\t Square of Number = %d", &square);
    getch();


}

【问题讨论】:

  • 编译时启用所有警告,然后编译器消息会自己说话:)

标签: c printf scanf


【解决方案1】:

您正在打印numbersquare 变量的内存地址,而不是它们的值。

试试这个:

printf("\n Number = %d ", number);
printf("\t Square of Number = %d", square);

【讨论】:

    【解决方案2】:

    您的printf 陈述不正确。在这种情况下不要使用&amp;

    printf("\n Number = %d ", number);
    printf("\t Square of Number = %d", square);
    

    【讨论】:

      【解决方案3】:

      要添加到上述答案...看这个例子:

      int number = 5;
      
      printf(" %d\n", number);     // Prints value of 'number'.
      printf(" %p\n", &number);    // Prints address of 'number'.
      printf(" %d\n", *(&number)); // Prints value at address of 'number' ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-28
        • 2020-08-25
        • 1970-01-01
        • 2016-10-23
        • 2022-08-18
        相关资源
        最近更新 更多