您的位置:首页 > 其它

随机产生20个正整数存入数组a中,且每个数均在1000-9999之间(包含1000和9999)。对数组进行排序,要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数放入数组b中,如果

2014-07-31 21:35 951 查看
<span style="font-size:24px;">    int a[20] = {0};
int b[10] = {0};
for (int i = 0; i < 20; i++) {
a[i] = arc4random() % 9000 + 1000;
printf("%d ", a[i]);
if ((i + 1) % 5 == 0) {
printf("\n");
}//5个数换一行
}//产生随机数
printf("\n");
int temp = 0;
for (int i = 0; i < 19; i++) {
for (int j = 0; j < 19 - i; j++) {
if (a[j] % 1000 > a[j + 1] % 1000) {
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
}
}//按每个数的后三位的大小进行升序排列
for (int i = 0; i < 20; i++) {
printf("%d ", a[i]);
if ((i + 1) % 5 == 0) {
printf("\n");
}
}//输出按每个数的后三位的大小进行升序排列的20个数
printf("\n");

for (int i = 0; i < 10; i++) {
b[i] = a[i];
}//前10个数放入数组b中
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9 - i; j++) {
if (b[j] % 1000 == b[j + 1] % 1000 && b[j] / 1000 < b[j + 1] / 1000) {
temp = b[j + 1];
b[j + 1] = b[j];
b[j] = temp;
}
}
}//如果后三位的数值相等,则按原先的数值进行降序排列
for (int i = 0; i < 10; i++) {
printf("%d ", b[i]);
if ((i + 1) % 5 == 0) {
printf("\n");
}
}//最后输出数组b的内容
printf("\n");
</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐