C语言编程怎么将一个数组截断成几个数组

C语言编程怎么将一个数组截断成几个数组,第1张

首先,你不知道这个数组可能包含了几个子数组,所以你无法事先申请合适数目的数组来保存数据。
所以必须先动态的申请一段内存,然后挨个扫描现有的数组中的元素,如果不是0,就将它插入到动态数组中去。如果是0的话,再动态的申请一段内存(也就是动态数组),然后再继续扫描,如此往复,直到扫描结束。
你还可以用一个数组将你所申请的内存指针保存起来,并对申请次数计数,这样就可以继续对这些数组进行处理了。

思路:定义float类型数组,接着依次输入个数,并累加求和,最后输出累加和除以10的值。
参考代码:
#include<stdioh>int main(){ float a[10],sum=0; int i; printf("please input number:\n"); for(i=0;i<10;i++){ scanf("%f",&a[i]); sum+=a[i]; } printf("%f",sum/10); return 0;}/运行结果:please input number:1 2 3 4 5 6 7 8 9 04500000/

给你提供个思路吧
假设你的数组是$array;
第一步:
foreach($array as $v){
$array_1=array();
$array_1=explode('/',$v);
$array_2[]=$array_1['2'];
}
第二步:
foreach($array_2 as $v){
$array_3=array();
$array_3=explode('_',$v);
$array_4[$array_3['0']]=$array_3['0'];
}
到这里,你就能拿到不同的组名了。
然后再循环$array,里面循环$array_4,比对每一项值是否含有"/bin/$array_4的键值"
如果有,就存进$array_4
循环完毕 你的目的就达到了
当然还会有更简单的办法,需要楼主自己揣摩了
----更新:我想到一个简单的方法,干脆直接替你写出来了
<php
$array=array();//这里需要你填写上
foreach($array as $v){
$array_1=array();
$array_1=explode('/',$v);
$array_2[$array_1['2']]=$v;
}
foreach($array_2 as $u=>$v){
$array_3=array();
$array_3=explode('_',$u);
$array_4[$array_3['0']][]=$u;
}
print_r($array_4);//$array_4即是你想要的结果
>

巧妙的运用了 slice 方法不会改变原数组,并且返回一个新的数组,而且当 slice(start,end) 第二个 end 参数值大于数组 length 的时候,会按照数组 length 算,取的数组结束的所有元素

第一步,10个数里随机取4个数,总共有C(10,4)=210种;
第二步,从这4个数里取出一个,作为第二个数组中的数,共有C(4,1)=4种;
从剩下的6个数里取出3个,作为第二个数组中的其他三个数,共有C(6,3)=20种;
第三步,从第1组的剩余3个数里取1个数,从第二组的剩余3个数里取一个数,从剩下的3个数里选两个数,组成第三组。共有 C(3,1)C(3,1)C(3,2)=27
第四步,从第一组剩余的两个数里取1个,第二组剩余的两个数里取1个,从第三组剩余的两个数里取1个,加上剩下的数,组成第四组。共有C(2,1)C(2,1)C(2,1)=8
第五步,每组剩下的1个数,自然而然组成了第五组。
所以这样的数组存在210×4×20×27×8=3628800种。
以上,请采纳。

import javautil;
public class RandomGroup {
public static void main(String[] args){
LinkedList<Integer> l=new LinkedList<Integer>();
int[][] group=new int[5][8];
Random r=new Random();
for(int i=0;i<40;i++)
ladd(new Integer(i+1));
for(int i=0;i<5;i++){
for(int j=0;j<8;j++){
int k=rnextInt(lsize());
group[i][j]=lget(k);
lremove(k);
}
}
for(int i=0;i<5;i++){
Systemoutprint("Group "+(i+1)+": ");
for(int j=0;j<8;j++){
Systemoutprint(group[i][j]+" ");
}
Systemoutprintln();
}
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/10537580.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存