C语言 输出一个数组中,所有元素之和为0的子序列
2012-10-08 15:08
417 查看
本程序用到了一个时间种子,来随机产生10个整数[-5~5],函数是randData( )。还有一个计算子序列为0的函数ZeroSubarray( )。
randData( )如下:
ZeroSubarray( )如下:
By lwclcy
randData( )如下:
int arr[10]; void randData(int a[], int start, int end) { srand(time(NULL)); for (int i = start; i <= end; ++i) a[i] = rand() % 10-5; printf("生成新的序列 :"); print(a, start, end); printf("\n"); }
ZeroSubarray( )如下:
void ZeroSubarray(int a[], int size) { if (size<=0) perror("error array size"); int sum = 0; int max = - (1 << 31); printf("************\n"); for (int cur=0;cur<size;cur++) { sum=0; for (int j=cur;j<size;j++) { sum += a[j]; if (sum==0) { while (cur<=j) { printf("%d ",a[cur++]); } printf("\n************\n"); } } } }main函数:
void main() { randData(arr,0,9); ZeroSubarray(arr,10); printf("\n"); }运行结果如下:
By lwclcy
相关文章推荐
- 定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。
- C语言 ,有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用拆半查找法找出该数是数组中的第几个元素的值,如果该数不在数组中,则输出“无此数”
- N个数组,从每个数组中取出一个数,组成一个序列,输出所有可能的情况
- 【c语言】输入一个递增排序的数组的一个旋转,输出旋转数组中的最小元素
- 第十四周项目一数组大折腾(2)创建一个长度为10的整形数组并初始化,由后往前(由第9个元素向第0个元素方向)输出数组中所有元素的值,改变数组元素的值,令所有的数组加倍,输出改变后的值。
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。
- C语言之输出一个数的每一位,和获取一个二进制数所有奇数和偶数位,输出二进制序列的区别。
- C语言 有一个整形数组a,有10个元素,要求输出数组中的全部元素
- // 1、输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 1,随机一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 3.输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- 如何用C语言获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
- C#实现将一个数组中所有元素反序输出
- c语言:获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 第十四周项目一数组大折腾(3)创建一个长度为16的整形数组a并初始化,先输出数组中元素值为3的倍数的数,再输出所有下标为3的倍数的元素值
- 【C语言】求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素
- Java编程:定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。