已知整型数组a中有若干元素的值为零,编写函数int func(int *a, int n),将a中的零移至数组后面,非零整数移至数组前面并从小到大排序。形参n表示数组中元素的个数,函数返回原数组中第一个值为零的元素的下标。在main函数中调用该函数。
4条回答 默认 最新
- 南七灵 2021-12-09 22:08关注
#include <stdio.h> int func(int *a, int n); int main(){ int i,n; printf("请输入数组元素个数:\n"); scanf("%d", &n); int a[n]; printf("请输入数组元素:\n"); for(i = 0;i < n;i++){ scanf("%d",&a[i]); } int index = func(a, n); printf("排序后的数组:\n"); for(i = 0;i < n;i++){ printf("%d ",a[i]); } printf("\n原数组中第一个0的下标是%d",index); } int func(int *a, int n){ int i,j,index = -1; for(i = 0;i < n;i++){ if(a[i] == 0){ index = i; break; } } for(i = 0;i < n-1;i++){ for(j = 0;j < n-1-i;j++){ if(a[j] > a[j+1]){ int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } int cnt = 0; for(i = 0;i < n;i++){ if(a[i] == 0){ cnt ++; } } for(i = 0;i < n;i++){ if(a[i] == 0){ for(j = i;j < n - cnt;j++){ a[j] = a[j + cnt]; } for(j = n - cnt;j < n;j++){ a[j] = 0; } break; } } return index; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么