已知整型数组a中有若干元素的值为零,编写函数int func(int *a, int n),将a中的零移至数组后面,非零整数移至数组前面并从小到大排序。形参n表示数组中元素的个数,函数返回原数组中第一个值为零的元素的下标。在main函数中调用该函数。
2条回答 默认 最新
- fuill 2021-12-20 20:48关注
#include <stdio.h> int func(int *a, int n) { int j,k,h=n-1; int pos=-1; for(j=0;j<n;j++) { if(a[j]==0) { pos=j; break; } } for(j=0;j<h;j++) { if(a[j]==0) { a[j]=a[h]; a[h]=0; h--; } } j=0; while(j<h-1) { k=0; while(k<h-1) { if(a[k]>a[k+1]) { int tem=a[k]; a[k]=a[k+1]; a[k+1]=tem; } k++; } h--; } return pos; } int main() { int n=10; int j; int t[10]= {3,6,6,0,7,2,5,9,0,1}; for(j=0; j<n; j++) { printf("%d ",t[j]); } printf("\n"); printf("\n%d\n",func(t,n)); for(j=0; j<n; j++) { printf("%d ",t[j]); } printf("\n"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 2