有人可以帮我理解这个程序的漏洞吗? 很长一段时间我试图弄清楚但是更多的卡住了。 我得到了
使用-wall进行编译时出现{警告:对[N1; N1 <= N2; N1 =(N1 + 2))}
错误 虽然尝试编译它没有-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;
}
答案 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);