Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.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
C 从多项式中提取幂_C - Fatal编程技术网

C 从多项式中提取幂

C 从多项式中提取幂,c,C,。。谁能告诉我这里怎么了?? 我一直在运行代码,但什么也没发生。。。但在我看来这没什么问题: 如果用户输入的内容不包含“^”,那么您的代码将显示为num,此处未初始化 int main() { int num,k,p,w; char parts[30]; char power[30]; scanf("%s",parts); int count=strlen(parts); for(w=0;w<count;w++){ i

。。谁能告诉我这里怎么了?? 我一直在运行代码,但什么也没发生。。。但在我看来这没什么问题:

如果用户输入的内容不包含“^”,那么您的代码将显示为num,此处未初始化

int main()
{
    int num,k,p,w;
    char parts[30];
    char power[30];
    scanf("%s",parts);
    int count=strlen(parts);
    for(w=0;w<count;w++){
            if(parts[w]=='^')
                num=w;
        }
        if(isdigit(num)) {
        for(k=num+1 ; k<count ;k++)
            strcat(power,parts[k]);
        }
        else{
        strcpy(power,'1');
        }

        p=atoi(power);
        printf(" the power is : %d\n",p);
}
如果输入包含“^”,则If将为true

在这里:

strcat在其第一个参数中找到NUL终止符,并从该位置覆盖其第二个参数。但是电源没有初始化!所以,这也调用了。此外,parts[k]是一个字符,但strcat希望它的两个参数都以NUL结尾,并且都是const char*类型。 使用初始化`电源

strcat(power,parts[k]);
并将strcat更改为

同样的问题也出现在这里:

strcat(power,&parts[k]);
换成

strcpy(power,'1');
去修理它。双引号使const char*类型的字符串文本\0终止

在这里:

用户可以为\0终止符输入长度超过29个字符+1的字符串。这也会导致。通过使用限制要扫描的字符数来修复此问题

scanf("%s",parts);
完成此操作后,scanf将从标准输入流中最多扫描29个字符+1的\0终止符


输入示例:5x^4目标要做什么/变量w是零件数组的索引。执行num=w会将此索引分配给变量num,而不是字符串中的实际数字。请在此处发布时构造您的问题。你的错误是什么,你不明白的是什么。。。我们不是读心术的人;它工作得很好。。。我将调整为uummm。。。当电源不止一个时,会出现问题digit@EliasKhoury,你做了我回答中提到的所有事情了吗?顺便说一句,如果按下旁边的绿色复选标记有帮助,请接受答案。通过这样做,你和回答者都可以赢得声誉。@EliasKhoury,我不知道怎么了。你可以问一个新问题。嗯,我会试着自己解决的。。。如果我不能,我会问一个新问题
strcpy(power,'1');
strcpy(power,"1");
scanf("%s",parts);
scanf("%29s",parts);