折半查找 &&   在标准输出上打印行号

*折半查找*

#include<stdio.h>int half_search(int arr[],int first,int last,int n){    int mid = 0;    while(first <= last)    {        mid = (first+last)/2;        if(n < arr[mid])          //若要查找的数字小于中间数,则在前一半查找        {            last = mid - 1;          //范围缩小        }        else if(n > arr[mid])    //若大于中间数,在后一半查找        {            first = mid + 1;        }        else            return 1;    }    return -1;}int main(){    int arr[] = {1,3,5,6,7,9,11,12,14,15};     //折半查找法适用于有序排列的数组    int i;    scanf("%d",&i);    if(half_search(arr,0,sizeof(arr)/sizeof(arr[0])-1,i) == -1)    {        printf("not exist\n");    }    else    {        printf("%d\n",i);    }    return 0;}


*编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。在编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制。*

#include <stdio.h>int main(){    int ch = 0;    int line = 1;    int flag = 1;    while ((ch = getchar()) != EOF)    {        if (flag)          /*这题的思路就是设计一个开关flag,当没有输入换行符时,开        {                     关打开,也就是输出一个行号,输完之后置成0关上,当输入换行符            printf("%d", line); 时再打开flag,输出行号*/            line++;            flag = 0;        }        if (ch == '\n')            flag = 1;        putchar(ch);    }    system("pause");    return 0;}

本文出自 “敲完代码好睡觉zzz” 博客,请务必保留此出处http://2627lounuo.blog.51cto.com/10696599/1698220

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值