0
点赞
收藏
分享

微信扫一扫

19号完成的c语言学习

未定义变量 2022-02-19 阅读 99

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\ni=%d\n",arry1[i],i);

            marb++;

        }

        else

        {

        if(marb==0&&i==numb_arry1-1)

        printf("unfound\n");

        }

    }

    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\n",mid);

            break;

        }

    }

    if(left>right)

    {

        printf("no found\n");

    }

    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\n",str2);

    while(left<=right)

    {

        str2[left]=str1[left];

        str2[right]=str1[right];

        printf("%s\n",str2);

        left++;

        right--;

    }

确定字符串的大小用sn=sizeof(str1)/sizeof(str1[0])-2,就太差劲了,因为有函数strlen

“-2是因为字符串的末尾为‘\0’”!!!

关于这道题,选“c”,“b”错在非零表示为真。

这道题也选c因为default语句没有顺序,但是比较规范的写法是放在最后的case后面;

答案是0;

题目用于优化寻找素数:(试除法)素数求解的n钟境界。

用到sqrt()开平方函数,

又因为偶数是不可能是素数的,所以还可易在优化!!!,如:再for的调制模块中写上i=i+2;

这种优化代码的思想一定要谨记在心!!!

这个flag用的很巧妙呀,要记住!!!式子的符号也可以用字符来代替。

Test4 printf(“%-2d”)           //注意百分号后面的“-2”:输出两位,向左对齐

举报

相关推荐

0 条评论