刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

奇数单增序列
给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。
时间限制:1000
内存限制:65536
输入
共2行: 第1行为 N; 第2行为 N 个正整数,其间用空格间隔。
输出
增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。
样例输入

10
1 3 2 6 5 4 9 8 7 10

样例输出

1,3,5,7,9

使用微信搜索喵呜刷题,轻松应对考试!

答案:

include<stdio.h>

int main()

{

int n,i,f,t,m,j=0,a[500];

scanf(“%d”,&n);

for(int i=0;i<n;i++)

{

scanf(“%d”,&m);

if(m%2==1) //判断所输入的数据是否为奇数,若为奇数就把数存入到一维数组a[]中;

{

a[j]=m;

j++; //用j来判断数组内的元素个数。

}

}

for(i=0;i<j-1;i++) //使用冒泡排序的方法对一维数组进行排序

{

int q=0;

for(f=0;f<j-i-1;f++)

{

if(a[f]>a[f+1])

{

t=a[f];

a[f]=a[f+1];

a[f+1]=t;

}

}

}

if(j==1) //需要考虑数组内数据只有一个数据时的情况。

printf(“%d”,a[0]);

else //数组内的数据大于一时。

{

for(i=0;i<j-1;i++)

{

printf(“%d,”,a[i]);

}

if(j>=2)

{

printf(“%d”,a[j-1]);

}

}

//在刚开始没有考虑数组数值为一的情况;造成一直显示结果错误!

return 0;

}

解析:

【喵呜刷题小喵解析】:首先,程序通过`scanf`函数读取输入的正整数序列的长度`n`。然后,程序使用一个循环来读取序列中的每个数字,并检查它是否为奇数。如果是奇数,程序将其存储在数组`a`中,并增加计数器`j`。然后,程序使用冒泡排序算法对数组`a`进行排序。冒泡排序是一种简单的排序算法,它通过重复遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。最后,程序检查数组`a`中的元素数量。如果只有一个元素,程序直接打印该元素。否则,程序打印数组`a`中的所有元素,并在每个元素之间插入逗号。在打印最后一个元素时,程序不打印逗号。这个程序使用了C语言的基本语法和库函数,如`scanf`、`printf`和数组操作。同时,程序也使用了条件语句和循环结构来控制程序的流程。这个程序能够正确地读取输入的正整数序列,提取其中的奇数,并按升序输出。程序的时间复杂度和空间复杂度都是O(n),其中n是输入序列的长度。
创作类型:
原创

本文链接:奇数单增序列 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share