###1.輸入10個職工的姓名和職工號
創(chuàng)新互聯(lián)建站自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊及專業(yè)的網(wǎng)站設(shè)計師團(tuán)隊。###2.按職工號由小到大順序排序,姓名也隨之調(diào)整
###3.輸入一個職工號,用折半查找法(二分查找)找出該名職工的姓名,從主函數(shù)輸入查找的職工號,輸出該職工姓名
#include#include#include#include#pragma warning(disable:4996)
#define n 10 //預(yù)編譯 n = 10
int main(){void first(char name[][10],int num[10]);
void second(char name[][10],int num[10]);
void third(char name[][10],int num[10],int k);
char name[n][10];
int num[10],k = 0;
printf("請輸入數(shù)字:\n");
first(name,num); //調(diào)用第一個函數(shù)(第一問)
second(name,num); //調(diào)用第二個函數(shù)(第二問)
printf("請輸入職工號\n");
scanf("%d",&k);
third(name,num,k); //調(diào)用第三個函數(shù)(第三問)
return 0;
}
void first(char name[][10],int num[10]){//輸入10個職工的姓名和職工號
int i,k;
for ( i = 0; i< 10; i++)
{ printf("輸入第%d個數(shù)字:",i+1);
scanf("%d",&num[i]);
printf("輸入第%d個名字:",i+1);
scanf("%s",name[i]);
}
}
void second(char name[][10],int num[10]){//按職工號由小到大順序排序,姓名也隨之調(diào)整
int i,j,temp = 0;
char xingming[10]; //存儲姓名
for ( i = 0; i< n - 1; i++) //排序
{for ( j = 0; j< n - i - 1; j++)
{if (num[j] >num[j+1])
{ temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
strcpy(xingming,name[j]); //字符排序使用strcpy函數(shù)
strcpy(name[j],name[j+1]);
strcpy(name[j+1],xingming);//字符串1,必須寫成數(shù)組名形式,字符串2,可以是字符數(shù)組名
}
}
}
for ( i = 0; i< n; i++)
{printf("排序之后:%d\t",num[i]);
printf("排序之后:%s\n",name[i]);
}
}
void third(char name[][10],int num[10],int k) //折半查找法
{int min=0,max=9,middle=0; //初始化第一個元素,中間的元素以及最后一個元素
while(min<=max)
{middle=(min+max)/2;
if(k>num[middle])
min=middle+1;
else if (kprintf("%s\n", name[middle]);
break;
}
}
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧