Test2:在一个有序一个数组中查找具体的某个数,
#include <stdio.h>
int main()
{
int arry1[]={1,2,3,4,5,6,7,8,9,10};
int i,numb_arry1;
int n,marb=0;
scanf("%d",&n);
numb_arry1=sizeof(arry1)/sizeof(arry1[0]);
//这行代码是计算数组有多少个元素的比较好的方法
for(i=0;i<numb_arry1;i++)
{
if(n==arry1[i])
{
printf("discover the number:%d i=%d ",arry1[i],i);
marb++;
}
else
{
if(marb==0&&i==numb_arry1-1)
printf("unfound ");
}
}
return 0;
}
但是!!!它是有序的序列,所以有更好的方法! 如:折半查找算法(二分查找算法)复杂度log2n,如下:
int arry1[]={1,2,3,4,5,6,8,9,10,14};
int left=0; //数组左边的下标
int right=sizeof(arry1)/sizeof(arry1[0])-1;
int n,mid=0;
scanf("%d",&n);
while(left<=right)
{
mid=(left+right)/2;
if(n>arry1[mid])
{
left=mid+1;
}
else if(n<arry1[mid])
{
right=mid-1;
}
else
{
printf("discavered it,subscript is:%d ",mid);
break;
}
}
if(left>right)
{
printf("no found ");
}
return 0;
Test3
//welcome to the world!!!
//w#####################!
//we###################!!
//wel#################!!!
//in this way to output
char str1[]="welcome to the world!!!";
char str2[]="#######################";
int left=0;
int right=strlen(str1)-1;
printf("%s ",str2);
while(left<=right)
{
str2[left]=str1[left];
str2[right]=str1[right];
printf("%s ",str2);
left++;
right--;
}
确定字符串的大小用sn=sizeof(str1)/sizeof(str1[0])-2,就太差劲了,因为有函数strlen
“-2是因为字符串的末尾为‘’”!!!
关于这道题,选“c”,“b”错在非零表示为真。
这道题也选c因为default语句没有顺序,但是比较规范的写法是放在最后的case后面;
答案是0;
题目用于优化寻找素数:(试除法)素数求解的n钟境界。
用到sqrt()开平方函数,
又因为偶数是不可能是素数的,所以还可易在优化!!!,如:再for的调制模块中写上i=i+2;
这种优化代码的思想一定要谨记在心!!!
这个flag用的很巧妙呀,要记住!!!式子的符号也可以用字符来代替。
Test4 printf(“%-2d”) //注意百分号后面的“-2”:输出两位,向左对齐