2016-03-24 23 views
-2

Birisi bu programdaki boşlukları anlamama yardımcı olabilir mi? Uzun zamandır anlamaya çalıştım ama daha fazla sıkışmış. Belirtilen iki sayı arasındaki toplam sayı veya ürün (C programında)

{uyarı: için bir etki [-Wunused değer] ile ifade (N1, N1 < = N2, N1 = (N1 + 2))}

Elde

hata derleme -oyla olmadan programı derlemeye çalışırken duvar çalışması gibi görünüyor, ancak gereksiz bir ekstra giriş ister. Basit problemi çözmeme yardım et. Çok teşekkür ederim.


#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

Scanf –

+0

'da nc'ye gerek yoktur, ana fonksiyonunuzda N1 ve N2 tanımlanmış mı? –

+0

'scanf ("% d \ n% d \ n ", & N1, &N2);' -> 'scanf ("% d% d ", & N1, &N2);'. Daha iyi bir çözüm, 'fgets()' ve sonra 'sscanf kullanın. (arabellek, "% d \ n% d \ n", & N1, &N2); " – chux

cevap

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

başlatma maddesi bir etkisi yoktur. Burada bir görev yok.

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

Neden N1% 2 (kimin değerdir 48) bir karaktere kıyasla ediliyor:

Ayrıca bu ne demek oluyor?

0

scanf doesnt ihtiyaçları \ n

deneyin scanf ("% D" % s, & N1, N2 &);