而循环效率低且不起作用
While loop being inefficient and not working
好吧,我正在为一个商店写一个程序(只是一个学习c++的项目),但我遇到了一个问题。白色循环似乎没有做它应该做的事情,程序只是通过它。
我有一个功能:
int decimali_float (pole &artikli){
int num = artikli.cena;
int count = 0;
num = abs(num);
num = num - (int)num;
while(num >= 0.0000001){
num *= 10;
count++;
num -= (int)num;
}
return count;
}
我的结构是这样的:
struct pole{
int sifra;
string opis;
float cena;
int vlez_kol;
int izlez_kol;
float dan_stapka;
float iznos;
int datum;
};
我已经为结构声明了一个数组:
pole artikli[100];
这是我跳过while循环的代码。
for (int i = 0; i < 5; i++){
while(!(cin >> artikli[i].cena) || decimali_float(artikli[i]) > 2){
cout << "Error, try again." << endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), 'n');
}
}
我的错误在哪里?
decimali_float
是对一个数字的小数进行计数的函数。
结构体的元素CCD_ 2在英语中的意思是CCD_。
pole artikli[100]
是结构中元素(项目)的数量
是只有我,还是num
是一个整数值,它被明确设置为等于或低于0:
int num = artikli.cena;
num = abs(num);
num = num - (int)num;
显然,它总是小于它所比较的任何非零常数,while循环将被跳过。
更新
主要问题似乎已经在评论中得到解决。至于后续问题,人们可以简单地检查从原始值减去调整后的"cena"是否有残差,而不是计算小数位数(假设cena
目前为正):
double cena1 = cena * 100;
if ((cena1 - floor(cena1)) > 0.000001)
// error condition here
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- C++为什么尽管我调用了void函数,它却不起作用
- 为什么在保护模式下继承升级不起作用
- 循环在计数器中不起作用
- 在其他文件中创建类时在 c++ 项目中不起作用
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 为什么二进制搜索在我的测试中不起作用
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- Bjarne Stroustrup Book - std_lib_facilities.h - 不起作用(未知类型名称)
- 为什么简单的算术减法在"if"条件下不起作用?
- 为什么Stroustup书中的has_f不起作用
- 你能检查一下为什么在这个代码中从链接列表中删除项目不起作用吗
- 嵌套While循环不起作用(C++问题)
- C++Matching Brackets 2解决方案不起作用
- 为什么这段代码不起作用,我该如何解决?
- 而循环效率低且不起作用