码迷,mamicode.com
首页 > 其他好文 > 详细

字符串检测一

时间:2015-04-27 19:53:19      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

输入:一组大于等于0的整数,不考虑非法输入,各个整数之间用“,”隔开,输入的字符总长度小于等于100.

输出:根据从大到小排列,如果中间有连续的,只输出最大和最小的值,输入的各个整都不相同,不用考虑相同的情况。各个整数之间用“,”隔开。

例:

输入:1,4,7,2,5,8,9,11

输出:11,9,7,5,4,2,1

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <iostream>
 4 #include <math.h>
 5 #include <vector>
 6 int main() 
 7 {
 8     char *input = (char*)malloc(100 * sizeof(char));
 9     memset(input,0,sizeof(input));
10     scanf("%s", input);
11     std::vector<int>input_number;
12     while ((*input >= 0) && (*input <= 9)&&(*input!=\0))
13     {
14         if (*input!=,)
15         {
16             char str[5] = "\0";
17             int i = 0;
18             while( (*input != ,) && (*input!=\0))
19             {
20                 str[i++] = *input;
21                 input++;
22             }
23             if (strlen(str)>1)
24             {
25                 input_number.push_back(atoi(str));
26             }
27             else
28             {
29                 input_number.push_back((*(input-1) - 0));
30             }
31         }
32         input++;
33     }
34     int count = 0;
35     for (std::vector<int>::iterator iter_out = input_number.begin(); iter_out != input_number.end(); iter_out++,count++)
36     {
37         for (std::vector<int>::iterator iter_in = input_number.begin(); iter_in != input_number.end()-1- count; iter_in++)
38         {
39             if ((*iter_in) < (*(iter_in+1)))
40             {
41                 int tmp;
42                 tmp=*iter_in;
43                 *iter_in = *(iter_in + 1);
44                 *(iter_in + 1) = tmp;
45             }
46         }
47     }
48     for (std::vector<int>::iterator iter = input_number.begin(); iter < input_number.end()-2;)
49     {
50         int flag = ((*iter)+*(iter+2))-2*(*(iter+1));
51         if (!flag)
52         {
53             iter=input_number.erase(iter+1);
54         }
55         else
56         {
57             iter++;
58         }
59     }
60     for (std::vector<int>::iterator iter = input_number.begin(); iter != input_number.end()-1; iter++)
61     {
62         printf("%d,", *iter);
63     }
64     std::vector<int>::iterator iter = input_number.end() - 1;
65     printf("%d\n",*iter);
66     getchar();
67     getchar();
68     return 0;
69 }

 

字符串检测一

标签:

原文地址:http://www.cnblogs.com/jingliming/p/4439701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!