1. 程式人生 > >C語言小題2

C語言小題2

c語言練習題

1、有一百個整數,其中有負數,找出連續三個數之和最大的部分.

示例:

輸入:2 ,-8 ,3,-2 ,4,-10

輸出: 5 ({3, -2, 4})

#include<stdio.h>
int?func_max(int?buf[],int?n)//求數組的最大值,並返回最大值的下標
{
	int?max=0;
	int?i;
	for(i=1;i<n-1;i++)
		if(buf[i]>buf[max])
			max=i;
	return?max;
}
void?func_sum(int?arr[],int?n)//連續三個數的和
{
	int?buf[97]={0};//100個數最多構成97個連續相加的和
	int?i=0;
	for(i=0;i<n-3;i++)
		buf[i]=arr[i]+arr[i+1]+arr[i+2];
	int?index=func_max(buf,n-3);
	printf("%d{%d,%d,%d}",buf[i],arr[index],arr[index+1],arr[index+2]);
	
}
int?main()
{
	int?a[100]={0};
	printf("Please?input?a?number:");
	int?i=0,n=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",a[i]);
	func_sum(a,n);
	return?0;
}

2,嵌入式系統經常具有要求程序員去訪問某特定的內存位置的特點。在某工程中,要求設置一絕對地址為0x67a9的整型變量的值為0xaa55。編譯器是一個純粹的ANSI編譯器。寫代碼去完成這一任務。

#include<stdio.h>
int?main()
{
????int?*ptr;
????ptr?=?(int?*)0x67a9;
????*ptr?=?0xaa55;
????return?0;
?}



C語言小題2