两个给定数字之间的总和或乘积(C中的程序)

时间:2016-03-24 19:10:23

标签: c

有人可以帮我理解这个程序的漏洞吗? 很长一段时间我试图弄清楚但是更多的卡住了。 我得到了

  

{警告:对[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;
}

2 个答案:

答案 0 :(得分:0)

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

初始化子句无效。这里没有任务。

这又是什么意思:

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

为什么N1%2与一个角色(其值为48)进行比较?

答案 1 :(得分:0)

scanf不需要\ n

尝试scanf(“%d%d”,&amp; N1,&amp; N2);