新手自学C语言随手记6

函数(1)

#include <stdio.h>  //几乎每次都需要的头文件
#include <stdlib.h>//几乎每次都需要的头文件
#include<string.h>//视情况而加的头文件

例1.
int main()
{
    char arr1[]="bkppkisskiss";//最后会有一个\0
    char arr2[20]="lvelvelve";
    strcpy(arr2,arr1); C语言自带函数strcpy:将arr1内容复制给arr2
    printf("%s\n",arr2);
    return 0;
}

例2.
int main()
{
    char arr[]="bkppkisskiss";
    memset(arr,'#',4); //C语言自带函数memset:为内存设置,中间参数存的实际为它的ASCALL码值
    printf("%s",arr);
    return 0;
}


MSDN也可以对函数进行查找学习
http:en.cppreference.com 学习网站

例3.
void Swap(int* pa,int*pb)
{
    int tmp=0;
    tmp=*pa;
    *pa=*pb;
    *pb=tmp;
}

int main()
{
    int a=10;
    int b=20;
    Swap(&a,&b);
    printf("a=%d,b=%d",a,b);
    return 0;
}


1 利用函数判断素数
int is_prime(int n)
{
    int j=0;
    for(j=2;j<=sqrt(n);j++)
    {
        if(n%j==0)
           return 0; // return 0 一执行整个函数结束,比break强

    }
    if(j>sqrt(n))
    {
        return 1;
    }
}


int main()
{
    int i=0;
    for(i=100;i<=200;i++)
    {
        if(is_prime(i)==1)
        {
            printf("%d ",i);
        }
    }

    return 0;
}

2函数写二分查找

int binary_search(int arr[],int k,int sz) //数组传过去仅仅是首元素的地址
{  //将sz放主函数里求

    int left=0;
    int right=sz-1;
    while(left<=right)
    {
        int mid = (left+right)/2;
        if(arr[mid]<k)
        {
            left=mid+1;
        }
        else if (arr[mid]>k)
        {
            right =mid-1;
        }
        else
        {
            return mid;
        }
    }
    return -1;
}

int main()
{
    int arr[]={1,2,3,4,5,6,7,8,9,10};
    int k=7;
    int sz=sizeof(arr)/sizeof(arr[0]);
    int ret=binary_search(arr,k,sz);
    if(ret==-1)
    {
        printf("找不到\n");

    }
    else{
        printf("找到了,下标是:%d\n",ret);
    }

    return 0;
}

3 Add函数——调用一次,数字加一

void Add(int* p)
{
    (*p)++;
}

int main()
{
    int num=0;
    Add(&num);
    printf("num=%d\n",num);
    Add(&num);
    printf("num=%d\n",num);
    return 0;
}


printf() 函数的返回值是打印的字符的个数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值