• 记录一些 小程序


    1 给定一个整型数组,有正数,负数和0. 求出连续的子序列中的和的最大值。(qiuhe.c)
    例如:int a[10] = {-1,5,7,0,-22,7,9,-2,0,5};的最大值为子序列“7,9,-2,0,5”求和,值为19

    #include <stdio.h>
    int a[] = {-1,-5,-7,0,-22,-7,-9,-2,0,5};
    int main()
    {
        int sum = 0;
        int max = 0;
        int number = sizeof(a)/sizeof(int);
        int i = 0;
        while(i < number)
        {
            sum += a[i];
            i++;
            if(sum < 0)
            {
                sum = 0;
            }
            else
            {
                if(sum > max)
                  max = sum;
            }
        }

        printf("max = %d ",max);

    }

    2 输入一个已经按升序排序过的整型数组(数组元素都为非负数,无重复元素)和一个数字。在数组中查找两个数,使得它们的和正好是输入的那个数字。
    如果有多对数字的和等于输入的数字,输出任意一对即可。
    例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。(yuansuzhihe.c)

    #include <stdio.h>
    #include <stdlib.h>

    int search(int num)
    {
        static char *p, *q;
        int i,j,n;
        char buf[] = {1,2,3,4,5,6,7,8,9};
        p = buf;
        q = buf;
        n = sizeof(buf)/sizeof(char);
        for(i = 0; i < n; i++){
            q = q+i+1;
            for(j = 0; j < n-i-1; j++){
                if(num == *p + *q){
                    printf("the result is:%d %d ", *p,*q);
                    break;
                }
                else
                    q++;

            }
            p++;
            q = buf;
        }
        if(i >= n)
        printf("can not find ");
    }
    int main(void)
    {
        int num = 0;
        printf("input a num");
        scanf("%d", &num);

        search(num);
        return 0;

    }

  • 相关阅读:
    在Fedora 8 下安装Fcitx输入法
    iisweb服务器完美解决方案
    利用httpget实现计划任务访问某一指定页面
    如何升级到SQL Server 2005
    排除“计算机默认 权限设置未将 COM 服务器应用程序”的错误
    Windows 2003 服务器安全设置
    Linux Fedora8 下安装 IE6
    配置 SQL Server 以便使用 2 GB 以上的物理内存(包括SQL Server 2005)
    Entity Framework初探
    async、await在ASP.NET[ MVC]中之线程死锁的故事
  • 原文地址:https://www.cnblogs.com/jade-L/p/3208341.html
Copyright © 2020-2023  润新知