新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
目前创新互联已为上1000家的企业提供了网站建设、域名、网站空间、网站托管维护、企业网站设计、桐梓网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
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++));//输入数据
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]);//看看排序后的结果
}
printf("\nInput x(int)...\n");
scanf("%d",x);//输入要查找的数
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)//输出结果
printf("%d == m[%d]\n",x,j);
else
printf("No find %d\n",x);
return 0;
}
以下两个调整:
1、用count中的int语句代替main中的int语句;
2、用count中从for开始的共7行(直到return前面的右花括号"}"那一行)代替main中的k=count(a,b);那一句行。
就可以实现不用函数。
1、C语言任何时候都需要库函数和头文件。C语言本身是没有什么作用的,它靠的就是函数库来执行语句的,C语言就是由函数构成的。头文件更是不能少了,但是只有#include“stdio.h”这个头文件在整个程序里只有printf和scanf这两种输出输入语句时才可以省略#include“stdio.h”这个头文件不写,如果程序还有其他输入输出语句出现时(比如putchar等输入语句)就一定要写#include“stdio.h”这个头文件,不能省略。
2、例如“内置函数”像printf、strcpy这类的系统库函数吧,在编译的过程中,编译器会根据包含的头文件查找相应的库进行连接编译,如果没有包含头文件的话,系统里面有很多库文件,编译器就无法找到对应的文件进行编译。也有的编译器会在用户忘记包含头文件的情况下进行自动查找,但是这一个过程会相当慢。
代码文本:
#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
//递归求一个数的任意次方
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;
//将该十六进制转换成二进制数
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,因为最低位的二进制数是2的0次方,也就是最低位是1
int count = strlen(str) - 1;
int sum = 0; //存放生成的十进制数
for(i=0;istrlen(str);i++){
/**注意:str[i]是一个char类型,使用int强转会得到该字符的ASCII码,ASCII码是一个十进制数字,
所以必须减字符0对应的ASCII码,才可以得到该数字的原始值,而不是该数字的ASCII码值,
*/
sum+=((int)(str[i])-(int)'0')*calc(2,count);
count--;
}
printf("十六进制%s对应的十进制数是:%d!\n",szStr,sum);
}