金币银币问题
求救,会的来帮帮忙,小弟感激!!!问题:金币银币问题:有若干币值不同的金币和银币,任一金币的价值都大于所有银币,要求按价值由小到大排列所有货币。
模型分析:用数组存放所有的整数,奇数(偶数)代表金币,偶数(奇数)代表银币,按先偶后奇(先奇后偶)的顺序整理数组,然后分别对偶数列和奇数列进行排序。
谢谢啦!!考试必考题目
#include<stdio.h> /*-----这个模型是偶数是金,奇数是银----*/ int main(void) { int n, a[100], b[100], c[100], i, j,temp, bn=0, an=0; printf("请输入金银的总个数:"); scanf("%d",&n); printf("\n"); for(i=0; i<n; i++) { scanf("%d",&c[i]); // c是存放所有数是数组,其实可以不要,不过题目有要求 if(0 == c[i]%2) a[an++]=c[i]; // 偶数分给a数组 else b[bn++]=c[i]; // 奇数分给b数组 } for(i=0; i<an; i++) // 给偶数排序,用了原始的气泡,只给LZ提供思路,算法自己改进 for(j=0;j<an-i;j++) if(a[j]<a[j+1]) temp = a[j],a[j] = a[j+1], a[j+1] = temp; for(i=0; i<bn; i++) // 给奇数排序,用了原始的气泡,只给LZ提供思路,算法自己改进 for(j=0;j<bn-i;j++) if(b[j]<b[j+1]) temp = b[j],b[j] = b[j+1], b[j+1] = temp; for(i=0; i<an; i++) // 定偶数为金,先输出偶数 ,(如果是定奇数为金,则与下个循环对换位置即可) printf("%d ",a[i]); for(i=0; i<bn; i++) // 输出奇数 printf("%d ",b[i]); return 0; }