gpt4 book ai didi

c - 我的递归质数函数代码有一些错误

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

我应该输入一个正数,终端应该打印它是否为质数。它还应该要求用户重复输入一个数字,直到用户按下“q”。它在没有 goto 循环的情况下工作正常,即一次一个。

有人能告诉我我的代码有什么问题吗?

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

prime(int a, int b) {
if (a == 1) {
printf("neither prime nor composite\n");
return;
} else if ((a % b) == 0) {
printf("composite no.\n");
return;
} else if (b >= a) {
printf("prime no.\n");
return;
} else
prime(a, (b + 1));
}

main(void) {
int x, y = 0, z;
char a[10], b;
loops: printf("enter an integer:\t");
do {
b = getchar();
if (b == 'q')
exit(1);
x = atoi(&b);
y = (10 * y) + x;
} while (b != '\n');
z = y / 10;
printf("num is %d and it's\t", z);
prime(z, 2);
goto loops;
return 0;
}

最佳答案

您没有在循环开始时将 y 初始化为 0

关于c - 我的递归质数函数代码有一些错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21636243/

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