C/C++作业3

来源:互联网 发布:java多线程上传文件 编辑:程序博客网 时间:2024/04/29 19:19

1、有一百个整数,其中有负数,找出连续三个数之和最大的部分.
示例:
输入:2 ,-8 ,3,-2 ,4,-10
输出: 5 ({3, -2, 4})

#include<stdio.h>void main(void){    int i=0,j=0,max=0,point=0;    int arr[100]={0},arr_[100]={0};    printf("输入要输入的个数n(3<n<100):");    scanf("%d",&j);    printf("输入各个数:\n");    for(i=0;i<j;i++)        scanf("%d",&arr[i]);    for(i=0;i<j-2;i++)        arr_[i]=arr[i]+arr[i+1]+arr[i+2];    for(i=0;i<j-2;i++)    if(max<arr_[i])    {        max=arr_[i];        point=i;    }    printf("%d({%d,%d,%d})\n",max,arr[point],arr[point+1],arr[point+2]);}

2、用<<,>>,|,&实现一个unsigned short型变量(2个字节)的高低位交换!!
例如:0x1234 交换后 0x3412
函数原型:void func(unsigned short *a)

void func(unsigned short *a){    unsigned short b=0;    b=*a<<8;    b<<8;    b+=*a>>8;    *a=b;}

3、嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa55。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。

define REG  *(int *)0x67a9REG=0xaa55;