程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言輸出一個數組中,所有元素之和為0的子序列

C語言輸出一個數組中,所有元素之和為0的子序列

編輯:關於C語言

本程序用到了一個時間種子,來隨機產生10個整數[-5~5],函數是randData( )。還有一個計算子序列為0的函數ZeroSubarray( )。
randData( )如下:
[cpp]
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( )如下:
[cpp]
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函數:
[cpp]
void main() 

    randData(arr,0,9); 
    ZeroSubarray(arr,10); 
    printf("\n"); 

運行結果如下:

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved