定义一个存放10个整形数据的数组,利用rand()函数结合产生10个0~99的随机整数并放在数组内
要求:
(1)对数组中的10个原始整数数据进行输出。
(2)利用getchar()函数接收键盘输入,当输入字符’1’时,对数组中的整形数据利用冒泡法进行升序排列并输出。
(3)利用getchar()函数接收键盘输入,当输入字符’2’时,对数组中的整形数据利用选择法进行降序排列并输出。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
int int_10[10] = { 0 };
int i = 0, j, k = 0, m = 0, n = 0;
srand((unsigned)time(NULL));
for (i = 0; i < 10; i++)
{
int_10[i] = rand() % 100;
printf("%d ", int_10[i]);
}
printf("\n");
printf("请输入1(升序)或2(降序)\n");
j = getchar(); //一个陷阱,getchar进去的是字符ASCII码‘1’是49,‘2’是50
switch (j - 48)
{
case 1:
for (i = 0; i < 9; i++)
{
for (m = 0; m < 9 - i; m++)
{
if (int_10[m] > int_10[m + 1])
{
n = int_10[m];
int_10[m] = int_10[m + 1];
int_10[m + 1] = n;
}
}
}
for (i = 0; i < 10; i++)
{
printf("%d ", int_10[i]);
}
break;
case 2:
for (i = 0; i < 9; i++)
{
k = 9 - i;
for (j = 0; j < 9 - i; j++)
{
if (int_10[j] < int_10[k])
{
n = int_10[j];
int_10[j] = int_10[k];
int_10[k] = n;
}
}
}
for (i = 0; i < 10; i++)
{
printf("%d ", int_10[i]);
}
break;
default:
printf("请输入正确的数字!\n");
break;
}
}
这是我的作业,很多地方不规范,可能看不懂,多多包涵。
对于定义的i,j,k,m如果前面用过以后失去作用,我会拿来复用。