当我运行此C 程序时,销售名称1不会打印出来
When I run this C++ program, sales name 1 does not print out
我没有任何错误,但是当我运行程序销售名称1时,没有打印出来。我正在使用C 。
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
void getData(string names[],double sales[3][4]); void
calTotalSales(string names[],double sales[3][4]);
int main() { double sales[3][4]; string names[3];
getData(names,sales);
calTotalSales(names,sales); return 0; }
void getData(string names[],double sales[3][4]) {
for(int i=0;i<3;i++) {
cout<<"Enter in the name of the salesman "<<i+1<<": ";
cin>>names[i];
cout<<"Now Enter in the sales for each quarter for "<<names[i]<<endl;
for(int j=0;j<4;j++)
{
cout<<"Enter in the data for the quarter "<<j+1<<": ";
cin>>sales[i][j];
}
cout<<endl; } }
void calTotalSales(string names[],double sales[3][4]) {
double max; string name; int i;
cout << setprecision(2) << fixed;
for(int j=0;j<4;j++)
{
max = sales[0][j];
for(i = 0; i < 3; i ++)
{
if(max < sales[i][j])
{
max = sales[i][j];
name = names[i];
}
}
cout << "name is " << name << endl;
cout << "Salesman " << name << " had the highest sale for the quarter " << j + 1 << " with $" << max << endl; } }
首先,我认为您是C 的初学者,所以如果您不介意,我会给您一些建议,避免使用using namespace std
尝试不使用,这里有一个解释您为什么不应该使用它,这仅仅是因为我有点痴迷,但尝试更好地格式化代码,它将更容易理解每个部分。
现在重要的部分,您的代码正常工作,但"销售名称1"不打印,因为一旦您将最大设置在此处:max = sales[0][j];
在此位置实际上是最大值,它将永远不会进入如果:
if(max < sales[i][j])
{
max = sales[i][j];
name = names[i];
}
因此,如果它永远不会更改名称,则它永远不会进入,这就是为什么它不打印销售名称1,因此该解决方案与此设置max = sales[0][j]
的更改一样简单:
max = sales[0][j];
name = names[0];
添加这最后一行将解决您的问题。
对不起,如果我没有足够清楚地解释自己(这是我的第一个答案:P)
相关文章:
- 任何人都可以弄清楚这段代码如何显示运行错误?它打印无限时间 -1 以及正确答案
- 如何在运行时在对象数组中动态追加新对象C++并打印它们
- 为什么如果我从键盘输入EOF克里昂不要在运行窗口打印程序的输出?
- 在代码仍在 C++ QT 中运行时显示打印输出
- 为什么每次运行此程序时&x都会打印不同的值?
- GDB 在程序运行时打印文件名行号
- 我的 c++ 程序不打印任何字符,但是如果我将它们更改为 int,代码可以完美运行
- 尝试打印链表时出现运行时错误
- C++11 打印运行时变量名称等于某个 constexpr 变量
- 当我运行此C 程序时,销售名称1不会打印出来
- 程序运行,但程序中的第二个功能不打印?输出中没有错误
- 为什么当我运行此循环以打印字符串中的每个单词时,我缺少一个值
- 如何使用Qt Windows中的设置路径属性从命令行运行应用程序(.exe)时在命令行上打印日志
- Clang 运行时检查:打印回溯
- 尝试优化和理解打印数字除数的递归函数的运行时
- (可选)在运行时打印到标准输出
- 我希望程序打印数字 0 到 99,但是当我运行代码时,我看到 100 行 99
- 我正在尝试将 s1 中的所有字符更改为"x"。但是,当我运行代码时,编译器刚刚打印出"hello world"11次
- 我的程序将运行,但它会打印出所有 100 个值,这些值应该完全不同
- 如何通过Qt中的root特权以编程方式运行打印命令lpr-p