简单说说:
1:比如甲3,乙9,丙7,要他们按自己的号码(吃了多少)从小到大排列,
根据你后面的要求,这个可以实现。例如原数据记录成 int a[3]={3, 9, 7} ; 请忽略非编程状态下的语言格式。
每个人的名字 char *name[3]={“a”,“b”,“c”};
建立一个和a等长度的数组指针 int p[3]={NULL,NULL,NULL} ;
然后排序,排序过程忽略,排序结果暂时假设为
p[0]=0 p[1]=2 p[2]=1
忽略格式。
表示a[p[0]] <= a[p[1]] <=
a[p[2]]
以后可以根据p指针数组的状态进行原数组的排序输出
2"之后我要选出最小的甲,要他拿着自己的号站出来,就像甲3这样。"
根据排序结果 你可以这样调用 设想要第m小的数据 a[p[m]]
关于m加不加1自己判断
3"然后我在给他一个数8,"
可以实现 m=0; a[p[m]]=8;
如果需要重新排序 记得重新排序。 过程忽略
4“然后我在拿着一组数比如384,如果里面有甲拿着的数的话他就答应一声有,没的话就说没,。”
这个比较复杂 难度和前面的不是一个数量级
我们这里假设 已经按正确排序
int a[3]={3, 9, 7}
int p[3]={0,2,1}
新建立一个数组,长度假设为4吧 表示你要查找的数值
int find[4]={0,2,4,8}
再建立一个数组和a等长 表示原数组a里对应值有没有在你的数组里出现 int ans[3]={0,0,0}
循序循环匹配find[i] i=1:4
查找a[j] j=1:3
如果有就标记对应 ans[j]=1; 已经标记的不再重新标记。
根据标记结果 可以按标志输出原数据
5“我就想到用另外3个变量分别统计吃了多少,然后冒泡排序,但是排序出来输出的话不能是甲3这样”
你的思路正确
收到的鲜花