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);
}
你正在服用地址 - 不是通過參考。 – 2014-10-18 18:51:06
'myFraction.operator'是'char',''+「'是'const char [2]' – Oktalist 2014-10-18 18:51:08
使用'+'而不是'+' – Machtl 2014-10-18 18:51:31