程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 華為的一道題

華為的一道題

編輯:C++入門知識

int A[nSize],其中隱藏著若干0,其余非0整數,寫一個函數int Func(int* A, int nSize),使A把0移至後面,非0整數移至
數組前面並保持有序,返回值為原數據中第一個元素為0的下標。(盡可能不使用輔助空間且考慮效率及異常問題,注釋規范且給出設計思路)

 

[cpp]
// 0再前非零在後.cpp : Defines the entry point for the console application.  
//  
 
#include "stdafx.h"  
 
void swap(int *a, int *b) 

    int temp; 
    temp=*a; 
    *a=*b; 
    *b=temp; 

 
void fun1(int a[], int n) 

    int i; 
    int j; 
    int first=0; 
 
    for (i=0;i<n;i++) 
    { 
        for (j=i+1;j<n;j++) 
        { 
            if (a[i]==0&&a[j]!=0) 
            { 
                first++; 
                if (first==1) 
                { 
                    printf("第一個不為零的下標是:%d\n",j); 
                } 
                swap(&a[i], &a[j]); 
            } 
        } 
    } 

 
int main(int argc, char* argv[]) 

    int a[7]={0,0,2,0,1,5,3}; 
 
    fun1(a,7); 
     
    for (int i=0;i<6;i++) 
    { 
        printf("%d ", a[i]); 
    } 
     
    return 0; 

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