C++简单问题
写几个函数1、输入10个职工的姓名和工号2、按工号由小到大排序,姓名也随之调整3、要求输入一个工号,用折半发找出该职工,从主函数输入要查找的工号,输出该职工的姓名。问题补...
写几个函数
1、输入10个职工的姓名和工号
2、按工号由小到大排序,姓名也随之调整
3、要求输入一个工号,用折半发找出该职工,从主函数输入要查找的工号,输出该职工的姓名。
问题补充:就是一个程序,全部要用函数解决。通过main函数调用其它的
C++
看看下面哪里错了
编译没有错误
#include "iostream.h"
#include<stdio.h>
#include <string.h>
#define N 10
void put (int num[],char name[N][10])
{int i;
for (i=0;i<N;i++)
{cout<<"input No:"<<endl;
cin>>num[i];
cout<<"input the name:"<<endl;
gets(name[i]);
}
}
void sort(int num[], char name[N][10])
{int j,t,time;
for(time=1;time<N;time++)
for(j=0;j<N-time;time++)
if(num[j]>num[j+1])
{t=num[j];num[j]=num[j+1];num[j+1]=t;}
cout<<"从小到大"<<endl;
for(j=0;j<N;j++)
{
cout<<num[j]<<name[j]<<endl;
}
}
void search(int n,int num[],char name[N][10])
{
int top, bot, mid,t;
bot=0,t=0;
top=N-1;
int sign=1;
if((n<num[0])||(n>num[N-1]))
t=-1;
while((sign==1)&&(bot<=top))
{mid=(bot+top)/2;
if(n==num[mid])
{
t=mid;
cout<<n<<"the name is:"<<name[t]<<endl;
sign=0;
}
else if (n<num[mid])
top=mid-1;
else
bot =mid+1;
}
if(sign==1||t==0)
cout<<"not find"<<n<<endl;
}
void main()
{int num[N],number,a=1,c;
char name[N][10];
put(num,name);
while (a==1)
{
cout<<"input number to look for:"<<endl;
cin >>number;
search(number,num,name);
cout<<"continue or not(Y/N)?";
getchar();
c=getchar();
if(c=='n'||c=='N')
a=0;
}
}
题目是帮别人问的,我自己对C++一点不懂,所以现在不知道该给谁分,下午找他来看下,他说那个好就给哪个分 展开
1、输入10个职工的姓名和工号
2、按工号由小到大排序,姓名也随之调整
3、要求输入一个工号,用折半发找出该职工,从主函数输入要查找的工号,输出该职工的姓名。
问题补充:就是一个程序,全部要用函数解决。通过main函数调用其它的
C++
看看下面哪里错了
编译没有错误
#include "iostream.h"
#include<stdio.h>
#include <string.h>
#define N 10
void put (int num[],char name[N][10])
{int i;
for (i=0;i<N;i++)
{cout<<"input No:"<<endl;
cin>>num[i];
cout<<"input the name:"<<endl;
gets(name[i]);
}
}
void sort(int num[], char name[N][10])
{int j,t,time;
for(time=1;time<N;time++)
for(j=0;j<N-time;time++)
if(num[j]>num[j+1])
{t=num[j];num[j]=num[j+1];num[j+1]=t;}
cout<<"从小到大"<<endl;
for(j=0;j<N;j++)
{
cout<<num[j]<<name[j]<<endl;
}
}
void search(int n,int num[],char name[N][10])
{
int top, bot, mid,t;
bot=0,t=0;
top=N-1;
int sign=1;
if((n<num[0])||(n>num[N-1]))
t=-1;
while((sign==1)&&(bot<=top))
{mid=(bot+top)/2;
if(n==num[mid])
{
t=mid;
cout<<n<<"the name is:"<<name[t]<<endl;
sign=0;
}
else if (n<num[mid])
top=mid-1;
else
bot =mid+1;
}
if(sign==1||t==0)
cout<<"not find"<<n<<endl;
}
void main()
{int num[N],number,a=1,c;
char name[N][10];
put(num,name);
while (a==1)
{
cout<<"input number to look for:"<<endl;
cin >>number;
search(number,num,name);
cout<<"continue or not(Y/N)?";
getchar();
c=getchar();
if(c=='n'||c=='N')
a=0;
}
}
题目是帮别人问的,我自己对C++一点不懂,所以现在不知道该给谁分,下午找他来看下,他说那个好就给哪个分 展开
13个回答
展开全部
错误在你的程序一点注释都没有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单的交给我,那难的呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询