有人可以帮助我了解此程序中的漏洞吗?
很久以来,我一直想弄清楚,但遇到更多困难。
我懂了
{警告:声明无效[-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/