• 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("
    ");
    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("
    ");
    40     return 0;
    41 }
     
    我不怕千万人阻挡,只怕自己投降…
  • 相关阅读:
    5-29
    5-28
    5-27
    -5-26
    5-25
    5-24
    5-21
    RabbitMQ消息中间件极速入门与实战
    细说java多线程之内存可见性
    全面解析java注解
  • 原文地址:https://www.cnblogs.com/geek-007/p/4295892.html
Copyright © 2020-2023  润新知