我的C程序设计语言学习日记#03

书中第三章讲的是控制流,包括条件语句、if-else嵌套语句、switch分支结构和三个循环结构:while、 do-while语句、for循环;另外还有break、 continue语句、goto语句与标号,这里只记了其中一些简单的知识点。



3-1 binsearch函数-升序排列数组寻位置-if-else嵌套结构

#include <stdio.h>

//binsearch函数:在v[0]<=v[1]<=...v[n-1]中查找x
int binsearch(int x,int v[],int n)
{
    int low,high,mid;

    low = 0;
    high = n-1;
    while(low <= high){
        mid = (low + high)/2;
        if(x < v[mid])
            high = mid-1;
        else if(x > v[mid])
            low = mid+1;
        else
            return mid;
    }
    return -1;  
}

int main()
{
    int i,x,v[100];

    x = 15;
    for(i = 0;i<=99;i++)
        v[i] = 2*i+1;
    printf("x在v中的位置为:%d\n",binsearch(x,v,99));  
    return 0;
}

注意点:

  • 这是一个使用折半查找方法的函数,所查找数组必须为已经进行升序排列的数组
  • 这里用到了else if语句,格式为:
if(表达式)
    语句
else if(表达式)
    语句
else if(表达式)
    语句
else if(表达式)
    语句
else
    语句
  • 其中各项else if语句均为可选,最后的else语句亦可省略

3-2 统计数字符及其他符号程序改-switch结构

#include <stdio.h>

int main()
{
    int c,i,nwhite,nother;
    int ndigit[10];

    nwhite = nother = 0;
    for(i=0;i<10;i++)
        ndigit[i] = 0;
    while((c = getchar()) != EOF){
        switch(c){
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
            ndigit[c-'0']++;
            break;
        case ' ':
        case '\n':
        case '\t':
            nwhite++;
            break;
        default:
            nother++;
            break;
        }
    }
    printf("各个数字出现次数:\n");
    for(i=0;i < 10;i++)
        printf("'%d' - %d\n",i,ndigit[i]);
    printf("空白字符出现%d次,其他字符出现%d次\n",nwhite,nother);
    return 0;
}

注意点:

  • 这里用了switch分支结构,每个分支后必须加一句break语句,最后一个分支default分支也加上一个break语句的作用是在我们需要再向switch语句后面添加分支时可以避免犯错

3-3 reverse函数-字符串字符倒置-逗号运算符

#include <string.h>

void reverse(char s[])
{
    int c,i,j;

    for(i=0,j = strlen(s)-1;i<j;i++,j--)
        c = s[i],s[i]=s[j],s[j]=c;
}

注意点:

  • 这个函数与之前提到的行倒置打印程序一样能实现对应的效果,在这里比较特别的特点是将多个语句用逗号 ‘,’隔开放到for函数和一个语句结束符;前,这样可以实现单步操作囊括多步功能
  • 上面提到的逗号运算符适用于一些特定的地方,有时逗号也会是分隔函数参数的逗号或者分隔声明中的变量的逗号,所以应该慎用

参考学习资料

《C程序设计语言》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值