Openjudge-计算概论(A)-奇数单增序列

描述:

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

输入共2行:
第1行为 N;
第2行为 N 个正整数,其间用空格间隔。输出增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。

样例输入

10
1 3 2 6 5 4 9 8 7 10

样例输出

1,3,5,7,9思路:这题的解题方法很多,我用的是其中之一的,先把数组排序(快排),再把单数挑出来,存入另一个数组(至于为什么,别问那么多),先输出第一个,再循环从第二个开始输出,每输出一个之前记得输出一个逗号!不过这个代码没能通过,快过年了嘛,Openjudge的服务器好像放假了,老是出错,期待春节回来修复吧......我的代码如下:
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int fun(const void *a,const void *b)
 4 {
 5    return *(int*)a-*(int*)b;
 6 }
 7 int main()
 8 {
 9     int n,i,a[200],b[200];
10     int j=0;
11     scanf("%d",&n);
12     for(i=0;i<n;i++)
13     {
14         scanf("%d",&a[i]);
15     }
16     qsort(a,n,sizeof(int),fun);
17     for(i=0;i<n;i++)
18     {
19         if(a[i]%2==1)
20         {
21             b[j]=a[i];
22             j++;
23         }
24     }
25     printf("%d",b[0]);
26     for(i=1;i<j;i++)
27     {
28             printf(",%d",b[i]);
29     }
30     printf("\n");
31     return 0;
32 }

这是我老师的代码(http://www.cnblogs.com/huashanqingzhu/p/3474573.html)这个是可以通过的,不造那个服务器怎么搞的:

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,a[500],i,j,t,flag;
 5     scanf("%d",&n);
 6     for(i=0;i<n;i++)
 7     {
 8         scanf("%d",&a[i]);
 9     }
10     for(i=1;i<n;i++)
11     {
12         flag=1;
13         for(j=0;j<n-i;j++)
14         {
15             if(a[j]>a[j+1])
16             {
17                 flag=0;
18                 t=a[j];
19                 a[j]=a[j+1];
20                 a[j+1]=t;
21             }
22         }
23         if(flag)  break;  //if(flag==1)  break;
24     }
25     flag=1;
26     for(i=0;i<n;i++)
27     {
28         if(a[i]&1)
29         {
30             if(flag)
31             {
32                 printf("%d",a[i]);
33                 flag=0;
34             }
35             else printf(",%d",a[i]);
36         }
37
38     }
39     printf("\n");
40     return 0;
41 }
 
时间: 2024-10-05 21:02:23

Openjudge-计算概论(A)-奇数单增序列的相关文章

02:奇数单增序列

02:奇数单增序列 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出. 输入 共2行:第1行为 N:第2行为 N 个正整数,其间用空格间隔. 输出 增序输出的奇数序列,数据之间以逗号间隔.数据保证至少有一个奇数. 样例输入 10 1 3 2 6 5 4 9 8 7 10 样例输出 1,3,5,7,9 查看 提交 统计 提问 全局题号 6241 添加于 2014-10-22

02:奇数单增序列 个人博客doubleq.win

个人博客doubleq.win 02:奇数单增序列 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出. 输入 共2行:第1行为 N:第2行为 N 个正整数,其间用空格间隔. 输出 增序输出的奇数序列,数据之间以逗号间隔.数据保证至少有一个奇数. 样例输入 10 1 3 2 6 5 4 9 8 7 10 样例输出 1,3,5,7,9 1 #include<iostream>

【北大先修课】计算概论(A)题库全代码

题目很水就是全都是坑真是丧心病狂啊 把代码留下造福后来人QωQ 结构体与链表练习 生日相同2.0 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define MAXN 200 using namespace std; struct st { int m,d; string name; bool operator&

计算概论(A)/基础编程练习2(8题)/7:整数的个数

1 #include<stdio.h> 2 int main() { 3 int k,temp,n[3] = {0}; 4 5 // 输入k个正整数 6 scanf("%d",&k); 7 8 // 循环读入和进行算术 9 while(scanf("%d",&temp)!=EOF) { 10 switch(temp) { 11 case 1: 12 n[0]++; 13 break; 14 case 5: 15 n[1]++; 16 br

计算概论(A)/基础编程练习2(8题)/5:点和正方形的关系

1 #include<stdio.h> 2 #include<math.h> 3 int main() { 4 // 输入坐标 5 float x, y; 6 while(scanf("%f %f", &x, &y) != EOF) { 7 // 计算坐标点与原点的欧氏距离 8 float dist=sqrt(x*x+y*y); 9 10 /* 11 // 简单判断横坐标和纵坐标的截距abs(x).abs(y)和与原点距离dist 注意:abs(

计算概论(A)/基础编程练习2(8题)/1:求平均年龄

1 #include<stdio.h> 2 int main() { 3 // 声明与初始化 4 int n, count=1, s=0, age=0; 5 6 // 输入学生人数 7 scanf("%d", &n); 8 9 // 循环读入 加和 10 while(count<=n) { 11 scanf("%d",&age); 12 s+=age; 13 count++; 14 } 15 16 // 计算平均年龄输出 17 pr

计算概论(A)/基础编程练习(数据成分)/1:短信计费

1 #include<stdio.h> 2 int main() { 3 // 输入当月发送短信的总次数n和每次短信的字数words 4 int n,words; 5 scanf("%d",&n); 6 float price=0.0; 7 8 while(scanf("%d",&words)!=EOF) { 9 // 所发送的短信超过了70个字,则会按照每70个字一条短信的限制把它分割成多条短信发送 10 price+=(words%7

计算概论(A)/基础编程练习1(8题):1:大象喝水

计算概论(A)/基础编程练习1(8题)/1:大象喝水 地址:http://pkuic.openjudge.cn/base1/1/ 1 #include<stdio.h> 2 int main() { 3 /* 圆周率常数 */ 4 const float Pi = 3.14159; 5 6 /* 深h厘米 半径r厘米 均为整数 */ 7 int h, r; 8 scanf("%d %d", &h, &r); 9 10 /* 一桶水的升数 1升 = 1000毫

python 计算出 素数 奇数 和偶数脚本

#!/usr/bin/env python #-*- coding:utf8 -*- #这是一个python写的素数脚本,只是计算100以内的素数 file=open('test.txt', 'w+') for n in range(100): if  n % 2 == 1: print >> file, n file.close() #!/usr/bin/env python #-*- coding:utf8 -*- #这是偶数python脚本,100以内的 for x in range(1