C语言--有木有大神帮帮看看我的折半法代码,已经自己研究了好长时间,还是弄不出来???

问题描述

C语言--有木有大神帮帮看看我的折半法代码,已经自己研究了好长时间,还是弄不出来???

#include
#include
#define M 3
void inputName(char name[][121],double money[]);
void ouput(char name[][121],double money[]);
void sortPay(char name[][121],double money[]);
void sortName(char name[][121],double money[]);
int zhe(char name[][121],double money[]);
void main()
{
char name[M][121];
double money[M]={0};
char m[121];
int g;
inputName(name,money);
printf("输出原样:n");
ouput(name,money);
sortPay(name,money);
printf("按工资输出:n");
ouput(name,money);
sortName(name,money);
printf("按姓名输出:n");
ouput(name,money);
printf("请输入要查找的职工姓名:");
gets(m);
g=zhe(name,money,m);
if(g!=-1)
{
printf("输出该职工%sn",m);
}
else
{
printf("没有此人n");
}

}
//写一个函数,输入m个职工的姓名和工资
void inputName(char name[][121],double money[])
{
int i;
for(i=0;i
{
printf("输出职工姓名:");
scanf("%s",&name[i]);
printf("输入职工工资:");
scanf("%lf",&money[i]);
getchar();
}
printf("n");
}
//写一个函数,输出m个职工的姓名和工资
void ouput(char name[][121],double money[])
{
int i;
for(i=0;i
{
printf("%s %gn",name[i],money[i]);
}
}
//写一个函数,对m个职工的工资进行升序排列,姓名也随着调整
void sortPay(char name[][121],double money[])
{
int i,j;
double t;
char x[121];
for(i=1;i
{
for(j=0;j
{
if(money[j]
{
t=money[j];
money[j]=money[j+1];
money[j+1]=t;
strcpy(x,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],x);
}
}
}
}
//写一个函数,对m个职工的姓名进行升序排列,工资也随着调整
void sortName(char name[][121],double money[])
{
int i,j;
char xm[121];
double t;
for(i=1;i
{
for(j=0;j
{
if(strcmp(name[j],name[j+1])
{
strcpy(xm,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],xm);
t=money[j];
money[j]=money[j+1];
money[j+1]=t;
}
}
}
}
//写一个函数,findByName,用折半法按姓名查找指定的职工,找到返回数组下标,找不到返回-1
int zhe(char name[][121],double money[],char m[])
{
int top,bottom,mid;
top=0;
bottom=M-1;
mid=(top+bottom)/2;
while(top
{
mid=(top+bottom)/2;
if(strcmp(m,name[mid][121])
{
top=mid+1;
}
else if(strcmp(m,name[mid][121])>0)
{
bottom=mid-1;
}
else
{
return mid;
}

}
return -1;

}

解决方案

zhe函数里两个strcmp应该都改为strcmp(m,name[mid])<0吧?

时间: 2024-10-04 17:57:18

C语言--有木有大神帮帮看看我的折半法代码,已经自己研究了好长时间,还是弄不出来???的相关文章

windows-,有木有大神Android 工程引用jar后代码混淆错误

问题描述 ,有木有大神Android 工程引用jar后代码混淆错误 -injars binadpush_jar.jar -outjars adpush_0330package_pro.jar -libraryjars 'D:资料adt-bundle-windows-x86-20130219sdkplatformsandroid-17android.jar' -optimizations !code/simplification/arithmetic,!field/*,!class/merging

有木有大神帮我看看是什么问题,我用的是intelij idea开发的,引入jstl的时候报错了

问题描述 有木有大神帮我看看是什么问题,我用的是intelij idea开发的,引入jstl的时候报错了 org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV at org.apache.jasper.compiler.DefaultErrorHandler.jspError(De

引用的这些angularjs分别有什么用有木有大神指导下

问题描述 引用的这些angularjs分别有什么用有木有大神指导下 解决方案 这些一般都是对应不同的模块,引入不同的js文件如: 1.动画 2.布局 3.文件上传下载

有木有大神提供一下android中利用Service后台服务进行手机截屏功能的代码?

问题描述 有木有大神提供一下android中利用Service后台服务进行手机截屏功能的代码? 有木有大神提供一下android中利用Service后台服务进行手机截屏功能的代码,?跪求!是在已经root权限下的

数据-求大神帮帮我看看这段代码哪里出错了

问题描述 求大神帮帮我看看这段代码哪里出错了 Sub save_in_array(ByVal rs As Data.DataTable, ByVal arr(,) As String, ByVal col As Integer) Dim n As Integer Dim j As Integer Dim i As Integer n = row_number(rs) ' 用来求数据库中有数据的行数,这里的n返回值是3 ReDim arr(n - 1, col - 1) For i = 0 To

java-大神帮看下我的代码哪里错了?

问题描述 大神帮看下我的代码哪里错了? 题目是编写程序,读入未指定个数的整数,判断读入的正数和负数分别有多少个,然后计算这些输入值的总和及其平均值(不对0计数).当输入为0时,表明程序结束.将平均值以浮点数显示. import java.util.Scanner; public class TextXXXXX { public static void main (String[] args){ Scanner input = new Scanner(System.in); int count1

静态分析-请问有大神知道如何自定义规则对代码进行静态检查么?

问题描述 请问有大神知道如何自定义规则对代码进行静态检查么? 请问有大神知道如何自定义规则对代码进行静态检查么?一直想根据自己的编程规则集,指定适合自身的分析工具. 解决方案 不知道你说的是什么的静态检查,代码分析工具么?

代码分析-JAVA 求大神帮看下这段代码 怎么修改 救命啊

问题描述 JAVA 求大神帮看下这段代码 怎么修改 救命啊 真心看不懂 public static char[] a(char[] paramArrayOfChar) { char[] arrayOfChar1 = new char[12]; char[] arrayOfChar2 = new char[12]; arrayOfChar2[0] = '?'; arrayOfChar2[1] = '?'; arrayOfChar2[2] = 'o'; arrayOfChar2[3] = '/';

servlet-大神帮看下这段代码我想把文件上传到webroot下的upload文件夹该怎么改啊

问题描述 大神帮看下这段代码我想把文件上传到webroot下的upload文件夹该怎么改啊 package com.chamber.controller.upload; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Iterator;