0

那是我的代码,我得到了这个错误

在函数'main'中:

41 1 [错误] 'scanf_result' 未声明(在此函数中首次使用)

41 1 [注意] 每个未声明的标识符对于它出现的每个函数只报告一次

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


        int main ( int argc, char *argv[] )

      {
        int n;
          float fl,fw,wh,ww,dh,dw;
         float p,t;
        float tl,tw,a;
        float p1,p2,p3;
          printf("What's the width of the floor?");
          scanf ("%d", &fw);
          printf("What's the length of the floor?");
          scanf ("%d", &fl);
             printf("What's the height of the wall?");
              scanf ("%d", &wh);
               printf("What's the width of the wall?");
          scanf ("%d", &ww);
         printf("What's the width of the door?");
          scanf ("%d", &dw);
         printf("What's the height of the door?");
         scanf ("%d", &dh);
          a=fw*fl+(wh*ww)*3-(dh*dw);
      p1=a*22;
         p2=a*23.80;
          p3=a*14;

            char line[100];
          int answer; 
        answer = -1;
        while (answer != 0) 
       {
        printf ("\nWhat tiles do you want?:\n");
          printf (" [1] 20sm X 30sm.");
        printf (" [2] 30sm X 41,6sm");
         printf (" [3] 25sm X 33sm");
         printf ("\nWhat do you want to do? [0 for nothing] ");
          fgets (line, sizeof(line), stdin); 
              scanf_result = scanf (line, "%d", &answer);
            if ((scanf_result == 0) | (scanf_result == EOF))
           {
               printf ("\n *** 1 - 2 or 3! ***\n");
           answer = -1; 
          }
           switch (answer)
        {
                   case 0:
          break;
         case 1:
               printf(" Total price = %.2f lv \n",p1);
         break;
          case 2:
        printf(" Total price = %.2f lv \n",p2);
             break;
           case 3:
             printf(" Total price = %.2f lv \n",p3);
            break;
             default: 
            break;
              }

        }

              system("PAUSE");
           return 0;    
         }
4

2 回答 2

0

scanf_result正如错误消息清楚地描述的那样,您的程序中没有变量声明。

放一个:

int scanf_result;

在您的声明部分修复错误。

于 2013-10-13T15:25:21.837 回答
0
      scanf_result = scanf (line, "%d", &answer);

你的scanf()用法是错误的。你需要sscanf()

scanf()函数应从标准输入流中读取stdin。该sscanf()函数应从字符串中读取line

[错误] 'scanf_result' 未声明(在此函数中首次使用)

错误描述了您缺少的内容。

宣布scanf_result

sscanf()返回整数

声明为整数变量。

于 2013-10-13T15:25:47.350 回答