gpt4 book ai didi

C中调用main函数

转载 作者:太空宇宙 更新时间:2023-11-04 00:25:03 24 4
gpt4 key购买 nike

#define f(x) (x*(x+1)*(2*x+1))/6
void terminate();
main()
{
int n,op;
char c;
printf("Enter n value\n");
scanf("%d",&n);
op=f(n);
printf("%d",op);
printf("want to enter another value: (y / n)?\n");
scanf("%c",&c); // execution stops here itself without taking input.
getch();
if(c=='y')
main();
else
terminate();
getch();

}
void terminate()
{
exit(1);
}

在上面的程序中,我想从用户那里获取输入,直到他输入一个 n 值。为此,我尝试反复调用 main() 函数。如果它在 C 中是合法的,我想知道为什么程序在 scanf("%c",&c) 处终止,如注释行所示。有人,请帮忙。

最佳答案

你不应该在你的程序中调用main。如果您需要多次运行它,则在其中使用一次 while 循环。

您的执行停止是因为默认情况下终端中的标准输入是行缓冲的。此外,您没有使用 getch 的返回值。

int main()
{
int n,op;

char c;
do {
printf("Enter n value\n");
scanf("%d",&n);
op=f(n);
printf("%d",op);
printf("want to enter another value: (y / n)?\n");
scanf("%c",&c);
} while (c == 'y')

return 0;
}

关于C中调用main函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21941040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com