首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >menu+total价格(pascal)

menu+total价格(pascal)
EN

Stack Overflow用户
提问于 2015-10-23 16:58:50
回答 1查看 63关注 0票数 1

我的程序应该允许用户从菜单中选择冰激凌,然后添加冰激凌的价格,以显示冰的总价cream.However我的输出总价是错误的。例如,如果我选择1和2,答案应该是1.5+1.7=3.2,但我得到3.4。另外,如果我选择2,我只会得到错误。请帮帮我。

代码语言:javascript
复制
program iceCream;

var
  count,i: integer;
  price:array[1..50]of real;
  totalPrice: real;
  choice: integer;

begin
  count:= 0;

  writeln ( ' ICE CREAM FLAVOUR');
  write ( ' 1.Vanilla: RM 1.50 |  3.Chocolate: RM 2.00');
  writeln;
  write ( ' 2. Strawberry: RM 1.70 | 0. Exit ');
  writeln;

  repeat
    write ( ' Enter your choice(number): ');
    readln ( choice);
    if choice <= 3 then
      count:= count+1
    else
      writeln ( 'Invalid choice');

    case choice of

      1: begin
           price[i]:= 1.50;
         end;

      2: begin
           price[i]:= 1.70 ;
         end;

      3: begin
           price[i]:= 2.00;
         end;

    end;

    for i:= 1 to count do
    begin
      totalPrice:= totalPrice+price[i];
    end;

  until choice = 0;

  writeln ( ' Total ice-cream: ', count);
  readln;
  writeln ( ' Total price: RM ', totalPrice:2:2);
  readln;

end.
EN

回答 1

Stack Overflow用户

发布于 2015-10-23 17:49:13

我不会在这里回答你的问题。更重要的是找出你做错了什么,并在你自己的上如何解决这个问题。

如何找出哪里出了问题?

编译器在编译代码时会显示两个警告:

警告: 2

项目1.lpr(29,17)警告:变量"i“似乎未初始化

项目1.lpr(44,25)警告:变量"totalPrice“似乎未初始化

当您读取一个没有赋值的变量时,就会出现这种警告。编译器会将您带到不安全代码的位置。第一个警告位于第17列的第29行:

代码语言:javascript
复制
1: begin
     price[i]:= 1.50; // i has not been set before. So its value is undefined or 0
   end;

您打算在这里使用set Price[i]吗?那么为什么之前没有给它赋值呢?或者你有一个不同的变量来保存冰激凌的数量?你为什么不用它呢?

让我们看一下第25列中的第44行的第二个警告。就是这一行:

代码语言:javascript
复制
totalPrice:= totalPrice+price[i];      
//           ^  

您确定totalPrice已正确初始化吗?

即使你正确地初始化它,程序仍然可能不能正常工作。在这种情况下,对应用程序进行调试是很有帮助的。在Lazarus IDE中打开应用程序,然后按F8单步执行程序。在执行程序的过程中,您可以从一行转到另一行。到时候你就会知道问题出在哪里了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33298483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档