c++题目小误

来源:百度知道 编辑:UC知道 时间:2024/05/22 07:49:10
请大家帮忙看一下吧,题目要求是输入10个人的工资,并且当输入为0时,要提示重新输入,走后把10个数降序排列,我编写的下面这一个,执行后,结果把0也进行了排序。麻烦大家帮忙查找一下原因吧。多谢。
715420925这是我的qq

#include<iostream>
using namespace std;
class Sort
{
int num[10],x;
public:0
void accept()
{
int i;
for(i=0;i<10;i++)
{
cout<<"请输入一个职工的工资:"<<endl;
cin>>num[i];
if(num[i]==0)
{
cout<<"输入的工资数必须大于零,请重新输入"<<endl;
}

}
}
void display()
{
int i;
for(i=0;i<10;i++)
{
cout<<num[i]<<endl;
}
}

void sortnum()
{
int k,j,i;
for(k=1;k<10;k++)
{
for(j=9,i=1;i<=10-k;j--,i++)

{ if(num[j]>num[j-1])

accept不对
if ==0后面应该i--
而且我觉得改成 <=0更好
为了增加可读性和界面友好,建议先
cout<<"请输入第"<<i<<"个职工的工资:";
不要endl了
好久没编程也不知道格式对不对哈哈

for(i=0;i<10;) //
{
cout<<"请输入一个职工的工资:"<<endl;
cin>>num[i];
if(num[i]==0)
{
cout<<"输入的工资数必须大于零,请重新输入"<<endl;
}
else ++i; // i在这里++

或者在原代码不更改的情况下,
if(num[i]==0)
{
--i; //
cout<<"输入的工资数必须大于零,请重新输入"<<endl;
}