Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何最有效地组合包括checkprime在内的函数 #包括 #包括 #包括 #定义FALSE 0 #定义真1 ...................... int checkprime(字符数) { int i,有效; 有效=真; 对于(i=2;i_C - Fatal编程技术网

如何最有效地组合包括checkprime在内的函数 #包括 #包括 #包括 #定义FALSE 0 #定义真1 ...................... int checkprime(字符数) { int i,有效; 有效=真; 对于(i=2;i

如何最有效地组合包括checkprime在内的函数 #包括 #包括 #包括 #定义FALSE 0 #定义真1 ...................... int checkprime(字符数) { int i,有效; 有效=真; 对于(i=2;i,c,C,您正在将c传递给checkprime,但您从未将其设置为任何值。因此,c的内容未定义,尝试读取它会导致未定义的行为 将数组传递给atoi函数,将其转换为整数并分配给c。还应将checkprime中的number参数的类型更改为int,以匹配传入的内容 看起来您还缺少一个或: #include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> #define FAL

您正在将
c
传递给
checkprime
,但您从未将其设置为任何值。因此,
c
的内容未定义,尝试读取它会导致未定义的行为

将数组传递给
atoi
函数,将其转换为整数并分配给
c
。还应将
checkprime
中的
number
参数的类型更改为
int
,以匹配传入的内容

看起来您还缺少一个

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#define FALSE 0
#define TRUE 1

................
}
int checkprime ( int number )
{
int i, valid;
valid = TRUE;

for ( i = 2; i < number; i++ )
    {
        if ( number % i == 0 ) valid = FALSE;
    } 
        return valid;

}

int main(void)

{
char inputarray[4];
int c, primeanswer;
.........................

else  
{
 c = atoi(inputarray);

primeanswer = checkprime(c);

if ( primeanswer == 1)
{
    printf("%d", "is a prime", inputarray);
}
else
{
    printf("%d", "not prime", inputarray);
}
}
}
编辑:

有关代码的更多问题:

您没有正确打印结果:

    if ( !checknumeric(inputarray)) 
{
    printf("Invalid input");
}
// else goes here
{
    primeanswer = checkprime(c);
    ...
这有两个问题。首先,要打印的字符串的固定部分是
printf
的第一个参数。其余部分被替换。因此前两个参数应组合成一个字符串。其次,使用
%d
int
处打印,但
inputarray
字符
数组y、 您应该传入
c
,这是您要打印的整数值

printf("%d", "is a prime", inputarray);
...
printf("%d", "not prime", inputarray);

您正在将
c
传递给
checkprime
,但从未将其设置为任何值。因此,
c
的内容未定义,尝试读取它会导致未定义的行为

将数组传递给
atoi
函数,将其转换为整数并分配给
c
。还应将
checkprime
中的
number
参数的类型更改为
int
,以匹配传入的内容

看起来您还缺少一个

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#define FALSE 0
#define TRUE 1

................
}
int checkprime ( int number )
{
int i, valid;
valid = TRUE;

for ( i = 2; i < number; i++ )
    {
        if ( number % i == 0 ) valid = FALSE;
    } 
        return valid;

}

int main(void)

{
char inputarray[4];
int c, primeanswer;
.........................

else  
{
 c = atoi(inputarray);

primeanswer = checkprime(c);

if ( primeanswer == 1)
{
    printf("%d", "is a prime", inputarray);
}
else
{
    printf("%d", "not prime", inputarray);
}
}
}
编辑:

有关代码的更多问题:

您没有正确打印结果:

    if ( !checknumeric(inputarray)) 
{
    printf("Invalid input");
}
// else goes here
{
    primeanswer = checkprime(c);
    ...
这有两个问题。首先,要打印的字符串的固定部分是
printf
的第一个参数。其余部分被替换。因此前两个参数应组合成一个字符串。其次,使用
%d
int
处打印,但
inputarray
字符
数组y、 您应该传入
c
,这是您要打印的整数值

printf("%d", "is a prime", inputarray);
...
printf("%d", "not prime", inputarray);

dbush的答案是正确的,但是您仍然会得到您已经看到的结果,因为您的
checkprime
方法中有一个bug:

printf("%d is a prime", c);
...
printf("%d not prime", c);

将修复那里的逻辑。

dbush的答案是正确的,但您仍然会得到您已经看到的结果,因为您的
checkprime
方法中有一个bug:

printf("%d is a prime", c);
...
printf("%d not prime", c);

将修复那里的逻辑。

我可以这样编写语法吗?inputarray[4]=atoi(c);@Absolute初学者不,您试图使用
c
而不将其再次设置为任何值。您需要的是
c=atoi(inputarray)
。别忘了修复
checkprime
的参数类型,也要修复Haldean Brown的回答中提到的循环条件。谢谢。我已经调整了它,但在试用时仍然显示为未定义的行为。将用我现在的内容编辑我的原始帖子。@Absolute初学者确保保留原始代码,以便列出的答案不会丢失上下文。谢谢dbush。我已经按照上面的方式修改了代码。我注意到应该是c而不是inputarray,因为我已经将c设置为inputarray的整数值。现在我认为我的逻辑是错误的,尽管我尝试了任何数字,但我总是得到0是prime。我的checkprime函数逻辑正确吗?我可以像这样编写语法吗is?inputarray[4]=atoi(c);@Absolute初学者不,您试图使用
c
而不将其再次设置为任何值。您想要的是
c=atoi(inputarray)
。别忘了修复
checkprime
的参数类型,也要修复Haldean Brown的回答中提到的循环条件。谢谢。我已经调整了它,但在试用时仍然显示为未定义的行为。将用我现在的内容编辑我的原始帖子。@Absolute初学者确保保留原始代码,以便列出的答案不会丢失上下文。谢谢dbush。我已经按照上面的方式修改了代码。我注意到应该是c而不是inputarray,因为我已经将c设置为inputarray的整数值。现在我认为我的逻辑是错误的,尽管我尝试了任何数字,但我总是得到0是prime。我的checkprime函数逻辑正确吗?