js 计算图片比例

Dnsperf

  返回  

输入一个整形数组,数组的大小N,数组元素都从键盘输入,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值

2021/7/20 18:59:16 浏览:

输入一个整形数组,数组的大小N,数组元素都从键盘输入,
数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,
每个子数组都有一个和。
求所有子数组的和的最大值

#include <stdio.h>

/* 输入一个整形数组,数组的大小N,数组元素都从键盘输入,
数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,
每个子数组都有一个和。
求所有子数组的和的最大值 */

void main()
{
	int i,j;
	int n;
	int sum=0;
	printf("输入数组元素个数:\n");
	scanf("%d",&n);
	int a[n];
	printf("输入%d个整数,有正负数:\n",n);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	int max=a[0];
	
	for(i=0;i<n;i++)//i子数组的开始
	{
		for(j=i;j<n;j++)//j子数组的结束
		{
			sum=sum+a[j];
			max=(max>sum)?max:sum;
		}
		sum=0;
	}
	printf("子数组之和最大值为:%d\n",max);
}

 

关键字
    static   const   extern   define typedef  auto register  volatile

(1)static
第一种:static修饰全局变量,局部变量
    修饰全局变量:改变全局变量的链接性,全局变量的链接性会从外部链接变成内部链接
    此时这个全局变量只能在定义它的.c文件中使用,其它.c文件不可以使用
    修饰局部变量:表示该局部变量只能被初始化一次
    static修饰的局部变量存放在数据段中
    普通的局部变量存放在栈空间
第二种:static修饰函数
    普通函数具备外部链接性
    static修饰的函数具备内部链接性,只能在定义它的.c文件中使用
    
(2)const
第一种:修饰普通变量
    const int a=99;  //a是个常量,常量是只读的,不能修改,可以访问
    const double b=3.14; 
第二种:修饰指针
    int a=99;
    第一种: const int *p=&a;  //表示指针p不可以修改a的内容
    第二种: int const *p=&a;  //第一种和第二种是等价的
    第三种: int *const p=&a;  //p指向a以后,后面就不可以再去指向其他变量的地址
    
(3)extern
    声明外部的全局变量: 在别的.c文件中定义的全局变量(非静态),如果当前文件需要使用,用extern声明即可
    声明外部函数:在别的.c文件中定义的函数(非静态),如果当前文件需要使用,用extern声明即可

(4)define 宏定义
宏定义:字符的替换
宏定义一般写成大写
写法一:普通的宏定义,不带参数的宏定义 
    #define  PI 3.14
    #define  PATH  "/dev/fb0"
    #define  N  10
写法二:带参数的宏定义(宏函数)
    e F(n)  n*n
    宏函数不是真正意义上的函数
    宏函数没有入栈出栈的操作
    普通函数需要入栈,出栈

(5)宏定义的特点
第一个:每个单独的宏定义,都各自占一行
第二个:宏定义一行写不下,必须加上续行符
第三个:宏定义中的参数都是没有数据类型的
第四个:带参数的宏定义,参数用圆括号括起来

(6)typedef 类型重定义
作用:给变量类型取别名
比如: typedef unsigned int u32;
用法:
用法一:给基本数据类型取别名
    typedef 基本数据类型  新的别名;
    比如:typedef unsigned int u32;
用法二:给指针取别名(用的比较多)
    typedef char * charp;
    typedef int * intp;
    typedef int(*funp)(int);  //给int(*)(int)函数指针,取了别名,叫做funp
用法三:给数组取别名
    typedef int a[10]; //给int[10]这种类型的数组,取了别名,叫做a
    typedef char b[20]; //给char[20]这种类型的数组,取了别名,叫做b
用法四:给结构体取别名
    可移植数据类型(u32就是一个可移植数据类型)
    比如: 在A操作系统  int类型 4字节
    int a=45454711; //没有超过4字节的取值范围
    在B操作系统  int 类型 2字节
    同样的代码,编译运行的时候,数据越界(以前的A系统int类型取值范围比B系统大)
    解决方法:typedef long u32;
    u32 a=45454711; 

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号