C 平方时答案错误

C Wrong Answer when squaring

我正在通过示例使用 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();


}

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

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

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

试试这个:

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

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

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' ...