功能问题
Problems with functions
我的代码有两个问题,第一个是程序要我输入我的号码两次,第二个是程序在完成其过程后立即关闭。
我曾尝试使用 getchar()
语句来阻止它这样做,但它似乎不起作用。
#include <stdio.h>
int square(int); /*function prototype*/
main()
{
int x; /*defining the function*/
printf("Enter your number\n");
scanf_s("%d \n", &x); /*reading the users input*/
printf("Your new answer is %d \n", square(x)); /*calling the function*/
getchar();
getchar();
}
int square(y) /*actual function*/
{
return y * y;
}
我建议使用 scanf("%d", &x);
来读取您的号码。你的问题是你的参数看起来像这样:"%d \n"
所以程序希望你输入你的数字和 \n。这样,您可以说出您希望 x
的外观,在您的情况下,它希望它是一个数值,一个 space 和行尾。
最后一个用getch();
。对于此功能,您需要像使用 stdio 一样包含 conio.h
,即:#include <conio.h>
.
通过更改
解决问题
scanf_s("%d \n", &x);
至
scanf_s("%d", &x);
问题是 scanf
格式字符串中的白色 space 字符(space、换行符等)指示 scanf
扫描并丢弃任意数量的白色space 个字符,如果有的话,直到第一个非白色space 个字符。
至于getchar()
的问题,将第一个getchar()
替换为:
int c;
while((c = getchar()) != '\n' && c != EOF);
这将扫描并丢弃所有内容,直到 \n
或 EOF
。
另外,改变
main()
至
int main(void)
和
int square(y)
至
int square(int y)
我的代码有两个问题,第一个是程序要我输入我的号码两次,第二个是程序在完成其过程后立即关闭。
我曾尝试使用 getchar()
语句来阻止它这样做,但它似乎不起作用。
#include <stdio.h>
int square(int); /*function prototype*/
main()
{
int x; /*defining the function*/
printf("Enter your number\n");
scanf_s("%d \n", &x); /*reading the users input*/
printf("Your new answer is %d \n", square(x)); /*calling the function*/
getchar();
getchar();
}
int square(y) /*actual function*/
{
return y * y;
}
我建议使用 scanf("%d", &x);
来读取您的号码。你的问题是你的参数看起来像这样:"%d \n"
所以程序希望你输入你的数字和 \n。这样,您可以说出您希望 x
的外观,在您的情况下,它希望它是一个数值,一个 space 和行尾。
最后一个用getch();
。对于此功能,您需要像使用 stdio 一样包含 conio.h
,即:#include <conio.h>
.
通过更改
解决问题scanf_s("%d \n", &x);
至
scanf_s("%d", &x);
问题是 scanf
格式字符串中的白色 space 字符(space、换行符等)指示 scanf
扫描并丢弃任意数量的白色space 个字符,如果有的话,直到第一个非白色space 个字符。
至于getchar()
的问题,将第一个getchar()
替换为:
int c;
while((c = getchar()) != '\n' && c != EOF);
这将扫描并丢弃所有内容,直到 \n
或 EOF
。
另外,改变
main()
至
int main(void)
和
int square(y)
至
int square(int y)