2014-10-18 48 views
1

我不明白爲什麼當我嘗試編譯它時,我總是收到一個錯誤。我得到一個錯誤說爲什麼編譯器發出「警告:賦值使得指針中的整數沒有強制轉換」?

fractions.c:在功能 「主」:
fractions.c:35:24:警告:賦值時將指針整數,未作施放[默認啓用] fractions.c:38 :24:警告:賦值使指針中的整數沒有強制轉換[缺省爲啓用] fractions.c:41:24:warning:賦值使指針中的整數不帶強制轉換[默認啓用] fractions.c:44:24 :警告:賦值時將指針整數,未作施放[默認啓用] fractions.c:48:11:警告:未使用的變量 「fArray」[-Wunused變量]」

#include <stdio.h> 
#include <stdlib.h> 

typedef struct{ 
     int numerator; 
     int denomonator; 
     char operator; 
     int num2; 
     int den2; 
} fraction; 

void printFraction(fraction f); 

int main(){ 
     fraction myFraction; 
     char input; 

     printf("Enter the numerator of fraction 1: "); 
     scanf("%i", &myFraction.numerator); 
     printf("Enter the demoninator of fraction 1: "); 
     scanf("%i", &myFraction.denomonator); 

     printf("Enter the numerator of fraction 2: "); 
     scanf("%i", &myFraction.num2); 
     printf("Enter the demoninator of fraction 2: "); 
     scanf("%i", &myFraction.den2); 

     printf("\n\nEnter the operation you would like to perform\n"); 
     printf("(1) for addition\n(2) for subtraction\n(3) for multiplication)"); 
     printf("\n(4) for division\n"); 
     scanf("%c", &input); 

     switch(input){ 
       case '1': 
         myFraction.operator = "+"; 
         break; 
       case '2': 
         myFraction.operator = "-"; 
         break; 
       case '3': 
         myFraction.operator = "*"; 
         break; 
       case '4': 
         myFraction.operator = "/"; 
         break; 
     } 

     fraction fArray[] = {myFraction}; 
     printFraction(myFraction); 

     return 0; 
} 

void printFraction(fraction f){ 
     printf("%i/%i %c %i/%i\n", f.numerator, f.denomonator, f.operator, f.num2, f.den2); 
} 
+0

你正在服用地址 - 不是通過參考。 – 2014-10-18 18:51:06

+3

'myFraction.operator'是'char',''+「'是'const char [2]' – Oktalist 2014-10-18 18:51:08

+1

使用'+'而不是'+' – Machtl 2014-10-18 18:51:31

回答

1

這這裏是一個字符串文字(ISO C99 6.4.5):

"+" 

你想要一個字符常量(ISO C99 6.4.4.4):

'+' 
相關問題