有人可以帮助我了解此程序中的漏洞吗?
很久以来,我一直想弄清楚,但遇到更多困难。
我懂了


  {警告:声明无效[-Wunused-value] for(N1; N1   N2; N1 =(N1 + 2))}


-wall编译时出错
尝试在不使用-wall的情况下进行编译时,该程序似乎可以正常运行,但需要不必要的额外输入。帮我解决简单的问题。非常感谢。



#include<stdio.h>
int N1, N2;

int prod(int N1,int N2);
int soma(int N1, int N2);

int main(){
    printf("Introduz dois numeros N1 e N2\n");
    scanf("%d\n%d\n", &N1, &N2);
    printf("Produto de numeros pares: %d\n", prod(N1,N2));
    printf("Soma de numeros impares: %d\n", soma(N1,N2));
return 0;
}
int prod(int N1,int N2){
    int prod=1;
    if (N1%2 == '0'){
        for(N1; N1 <= N2; N1 = (N1 + 2))
            prod=prod*N1;
    }
    else{
        N1=N1+1;
        for(N1; N1 <= N2; N1 = (N1 + 2))
            prod=prod*N1;
    }
return prod;
}

int soma(int N1, int N2){
    int soma=0;
    if (N1%2 != '0'){
        for(N1; N1 <= N2; N1 = (N1 + 2))
            soma = soma + N1;
    }
    else{
        N1 = N1 + 1;
        for(N1; N1 <= N2; N1 = (N1 + 2)){
            soma = soma + N1;
        }
    }
return soma;
}

最佳答案

for(N1; N1 <= N2; N1 = (N1 + 2))
     ^


初始化子句无效。这里没有作业。

这也意味着什么:

if (N1%2 == '0'){


为什么将N1%2与一个字符(其值为48)进行比较?

关于c - 两个给定数字之间的总和或乘积(用C编写的程序),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36208207/

10-12 18:05