#include?stdio.h
目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、桐梓網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
int?main(int?argc,char?*argv[]){
int?m[15],i,j,k,x;
printf("Input?15?integers...\n");
for(i=0;i15;scanf("%d",m+i++));//輸入數(shù)據(jù)
for(i=0;i15;i++){//選擇法排序
for(k=i,j=k+1;j15;j++)
if(m[k]m[j])
k=j;
if(k-i)
j=m[k],m[k]=m[i],m[i]=j;
printf("%d?",m[i]);//看看排序后的結(jié)果
}
printf("\nInput?x(int)...\n");
scanf("%d",x);//輸入要查找的數(shù)
i=0,k=14;
while(j=(i+k)1,ik??m[j]-x)//二分法查找
m[j]x???i=j+1?:?k=j-1;
if(m[j]==x)//輸出結(jié)果
printf("%d?==?m[%d]\n",x,j);
else
printf("No?find?%d\n",x);
return?0;
}
以下兩個(gè)調(diào)整:
1、用count中的int語(yǔ)句代替main中的int語(yǔ)句;
2、用count中從for開(kāi)始的共7行(直到return前面的右花括號(hào)"}"那一行)代替main中的k=count(a,b);那一句行。
就可以實(shí)現(xiàn)不用函數(shù)。
1、C語(yǔ)言任何時(shí)候都需要庫(kù)函數(shù)和頭文件。C語(yǔ)言本身是沒(méi)有什么作用的,它靠的就是函數(shù)庫(kù)來(lái)執(zhí)行語(yǔ)句的,C語(yǔ)言就是由函數(shù)構(gòu)成的。頭文件更是不能少了,但是只有#include“stdio.h”這個(gè)頭文件在整個(gè)程序里只有printf和scanf這兩種輸出輸入語(yǔ)句時(shí)才可以省略#include“stdio.h”這個(gè)頭文件不寫(xiě),如果程序還有其他輸入輸出語(yǔ)句出現(xiàn)時(shí)(比如putchar等輸入語(yǔ)句)就一定要寫(xiě)#include“stdio.h”這個(gè)頭文件,不能省略。
2、例如“內(nèi)置函數(shù)”像printf、strcpy這類(lèi)的系統(tǒng)庫(kù)函數(shù)吧,在編譯的過(guò)程中,編譯器會(huì)根據(jù)包含的頭文件查找相應(yīng)的庫(kù)進(jìn)行連接編譯,如果沒(méi)有包含頭文件的話(huà),系統(tǒng)里面有很多庫(kù)文件,編譯器就無(wú)法找到對(duì)應(yīng)的文件進(jìn)行編譯。也有的編譯器會(huì)在用戶(hù)忘記包含頭文件的情況下進(jìn)行自動(dòng)查找,但是這一個(gè)過(guò)程會(huì)相當(dāng)慢。
代碼文本:
#include "stdio.h"
int main(int argc,char *argv[]){
int s,n,t;
for(t=1,s=0,n=2;n11;s+=(t*=n*n-n),n+=2);
printf("2!+4!+6!+8!+10! = %d\n",s);
return 0;
}
#includestdio.h
#includestring.h
//遞歸求一個(gè)數(shù)的任意次方
int calc(int num,int count){
if(num==0){
return 0;
}else if(count==0){
return 1;
}else{
return num*calc(num,count-1);
}
}
void main(){
char szStr[] ="1a2b";
char str[100]="";
int i;
//將該十六進(jìn)制轉(zhuǎn)換成二進(jìn)制數(shù)
for(i=0;istrlen(szStr);i++){
if(szStr[i]=='0'){
strcat(str,"0000");
}else if(szStr[i]=='1'){
strcat(str,"0001");
}else if(szStr[i]=='2'){
strcat(str,"0010");
}else if(szStr[i]=='3'){
strcat(str,"0011");
}else if(szStr[i]=='4'){
strcat(str,"0100");
}else if(szStr[i]=='5'){
strcat(str,"0101");
}else if(szStr[i]=='6'){
strcat(str,"0110");
}else if(szStr[i]=='7'){
strcat(str,"0111");
}else if(szStr[i]=='8'){
strcat(str,"1000");
}else if(szStr[i]=='9'){
strcat(str,"1001");
}else if(szStr[i]=='a'){
strcat(str,"1010");
}else if(szStr[i]=='b'){
strcat(str,"1011");
}else if(szStr[i]=='c'){
strcat(str,"1100");
}else if(szStr[i]=='d'){
strcat(str,"1101");
}else if(szStr[i]=='e'){
strcat(str,"1110");
}else if(szStr[i]=='f'){
strcat(str,"1111");
}
}
//注意,必須要減去1,因?yàn)樽畹臀坏亩M(jìn)制數(shù)是2的0次方,也就是最低位是1
int count = strlen(str) - 1;
int sum = 0; //存放生成的十進(jìn)制數(shù)
for(i=0;istrlen(str);i++){
/**注意:str[i]是一個(gè)char類(lèi)型,使用int強(qiáng)轉(zhuǎn)會(huì)得到該字符的ASCII碼,ASCII碼是一個(gè)十進(jìn)制數(shù)字,
所以必須減字符0對(duì)應(yīng)的ASCII碼,才可以得到該數(shù)字的原始值,而不是該數(shù)字的ASCII碼值,
*/
sum+=((int)(str[i])-(int)'0')*calc(2,count);
count--;
}
printf("十六進(jìn)制%s對(duì)應(yīng)的十進(jìn)制數(shù)是:%d!\n",szStr,sum);
}