惨了,题目都看不懂了

titainium 2003-07-10 10:24:57
题目是这样的:用单下标数组解决下列问题。公司按佣金为员工发工资,销售员每周发200美元加上本周总销售额的9%。例如某个销售员本周总销售额为5000美元,则发200+9%×5000=650美元。编写一个程序(用记数器数组)确定工资在下列范围的员工数(假设将每个销售人员的工资取整):
a)$200-$299 b)$300-$399 c)$400-$499 d)$500-$599 e)$600-$699 f)$700-$799
g)$800-$899 h)$900-$999 i)$1000以上
...全文
127 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zming 2003-07-11
  • 打赏
  • 举报
回复

一点想法:

(1)如果仅记录员工数,则可以使用一维数组,例如:a[2]存放$200-$299的员工数, a[3]存放$300-$399的员工数。

(2)如果还需要记录员工姓名等,则需要使用二维(动态)数组,或数组指针。可能还需要两个以上的数组。(没仔细考虑过)
titainium 2003-07-11
  • 打赏
  • 举报
回复
To liem(阿明):
为什么要用a[ 9 ]++?
liem 2003-07-11
  • 打赏
  • 举报
回复
假定x是某销售员的收入,则
c=(x-200)/100就是计数器的下标。
if(c<9)
a[c]++;
else
a[9]++;
  • 打赏
  • 举报
回复
用循环呀!

若员工人数不定,建议你使用动态数组:

    int *a;
new a=char[workers];
…………………………
delete[] a;

更便利的方法是使用vector容器(标准库),里面定义了默认的赋值函数,

相当省事。
titainium 2003-07-11
  • 打赏
  • 举报
回复
举个例子唻。我自己的想法是,假设员工有十人,那么声明的一个数组就应该是int a[10],怎样把计算结果传进去呢,当真要int a[0] = 1, int a[1] = 2这个样子?
bahanzo1 2003-07-11
  • 打赏
  • 举报
回复
挨个赋值不就行了么?
titainium 2003-07-11
  • 打赏
  • 举报
回复
呵呵,感谢楼上的,昨天晚上我又把题目想了一遍,其实这是一个类似于学生成绩统计的小程序,所以用上一维数组就可以了,不过现在问题是领薪水的员工数目是我计算出来的,计算出来之后又应该怎样传到数组中去呢?
titainium 2003-07-11
  • 打赏
  • 举报
回复
int a = 10;
int sale[ a ] = { 0 };

这次我做了这样的修改,可是这次报的错误是sale[ a ]没有初始化。
  • 打赏
  • 举报
回复
To:一千瓦的刀狼

数组下标只能是整型量。

你要在之前加上 int a=100;

若a不确定,还是要按我上面说的,用指针。
titainium 2003-07-11
  • 打赏
  • 举报
回复
//利用数组排列员工工资
#include <iostream>
#include <stdlib.h>
#include <iomanip>//调用头文件,进行排列

using namespace std;

int main(int argc, char *argv[])
{
const int sale[ a ];//声明数组,用以排列工资
int person,//声明员工数目
sale,//销售额
size = 11;//这里声明一个变量,用于数组计算。
float salary;//员工工资

for ( int count = 1; count <= 10; count++ ) {
//利用记数器控制输入
cout << "请输入员工的销售额:";//提示用户输入销售额
cin >> sale;//输入销售额

salary = 200 + sale * 0.09;//计算员工收入
const_cast< int > a = ( salary - 200 ) / 100;//计算下标

if ( a < 9 )//利用if...else判断,将值传入数组
sale[ a ]++;
else
sale[ 9 ]++;
}

int employee[ size ] = { 0 };//初始化数组

for ( int answer = 0; answer <= 10; answer++ )
++employee[ sale[ a ] ];

for ( int rating = 1; rating <= 10; rating++ )
cout << setw( 6 ) << rating
<< setw( 17 ) << employee[ rating ]
<< endl;

system("PAUSE");
return 0;
}
这是小弟自己做的,可是说a没有声明,那这个下标应该怎么声明呢?
LeeAn 2003-07-11
  • 打赏
  • 举报
回复
To liem(阿明):
为什么要用a[ 9 ]++?
titainium 2003-07-11
  • 打赏
  • 举报
回复
不好意思,我突然把强制转换符给忘了。是什么来着的?const_cast< int >?由float转换到int的。
titainium 2003-07-11
  • 打赏
  • 举报
回复
不好意思,我突然把强制转换符给忘了。是什么来着的?const_cast< int >?由float转换到int的。
titainium 2003-07-10
  • 打赏
  • 举报
回复
呵呵,忘记说问题了。小弟曾经用函数解决过,这次题目要求是用数组。可是我不知道这里的数组应该怎么用,用在什么地方?给点提示就可以。谢谢!

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧