TA的每日心情 | 开心 2014-6-18 08:29 |
---|
签到天数: 14 天 [LV.3]偶尔看看II
滴水大师
- 积分
- 2345
|
题目
解决代码及点评
- <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/*
- 功能:将一个一维数组中的偶数依次交换。例如有8个元素, 若其中第1、4、5三元素是偶数时应按下图交换。
- 例子: a[]={2,3,1,6,8,7,9,5}
- change to {8, 3, 1, 2, 6, 7, 9, 5}
-
- 日期:17:04 2013/10/24
- */
-
- #include<stdio.h>
- #include<stdlib.h>
- #include<time.h>
-
- #define N 10
-
- int *getFirst(int a[],int n);
- int *getLast(int a[],int n);
-
- void main()
- {
- int a[N];
- time_t t;
- srand((unsigned)time(&t)); //随机函数发生器
- for (int i = 0; i < N; i++) //随机赋值并打印
- {
- a = rand() % 90 + 10;
- printf("%-3d",a);
- }
-
- int *pLast = getLast(a, N); //将最后一个偶数的地址赋给plast
- int lastValue = *pLast;
-
- int *pFirst = getFirst(a,N); //将第一个偶数的地址赋给pfirst
-
- //从后最后一个偶数开始往前轮循,到第一个偶数为止
- for (int *p = pLast - 1; p >= pFirst; p--)
- {
- if (*p % 2 == 0)
- {
- *pLast = *p; //将当前偶是赋给下一个偶数
- pLast = p; //将当前偶数赋给标识变量pLast
- }
- }
- *pFirst = lastValue; //将最后一个偶数赋给第一个偶数的地址
-
- printf("\n\n\n");
- for (int i = 0; i < N; i++) //随机赋值并打印
- {
- printf("%-3d", a);
- }
- system("pause");
- }
-
- int *getFirst(int a[], int n)
- {
- int *pFirst = NULL;
- for (int *p = a; p < a + N; p++) //数组中最后一个偶数的地址赋给pLast;
- {
- if (*p % 2 == 0)
- {
- pFirst = p;
- break;
- }
- }
- return pFirst;
- }
-
- int *getLast(int a[], int n)
- {
- int *pLast = NULL;
- for (int *p = a + n - 1; p >= a; p--) //数组中最后一个偶数的地址赋给pLast;
- {
- if (*p % 2 == 0)
- {
- pLast = p;
- break;
- }
- }
- return pLast;
- }</pre><br><br></pre></pre></pre>
|
|