基于visual Studio2013解决C语言竞赛题之1033数字交换
题目
解决代码及点评
/*
功能:将一个一维数组中的偶数依次交换。例如有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[i] = rand() % 90 + 10;
printf("%-3d",a[i]);
} 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[i]);
}
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;
}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
http://download.csdn.net/detail/yincheng01/6681845
解压密码:c.itcast.cn
基于visual Studio2013解决C语言竞赛题之1033数字交换的更多相关文章
- 基于visual Studio2013解决C语言竞赛题之0401阶乘
题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include ...
- 基于visual Studio2013解决C语言竞赛题之0205位数求和
题目
- 基于visual Studio2013解决C语言竞赛题之0201温度转换
题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { float f; float c; float ...
- 基于visual Studio2013解决C语言竞赛题之0409 100以内素数
题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /******************************************* ...
- 基于visual Studio2013解决C语言竞赛题之0408素数
题目 解决代码及点评 判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么 ...
- 基于visual Studio2013解决C语言竞赛题之0407最大值最小值
题目 解决代码及点评 这道题考察循环和比较 /*********************************************************************** ...
- 基于visual Studio2013解决C语言竞赛题之0406数列求和
题目 解决代码及点评 这个题目,还是考察for循环的使用 以及数列规律,该数列的特点是第n个分子 = 第n-1个分子 + 第n-2个分子,分母也是此规律 而另外一个规律是第n个分子和第n- ...
- 基于visual Studio2013解决C语言竞赛题之0405阶乘求和
题目 解决代码及点评 这道题和上一道题类似,第n个累加项 = n-1累加项的n倍 由于有这个规律,我们可以用一个for循环实现 但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更 ...
- 基于visual Studio2013解决C语言竞赛题之0404循环求和
题目 解决代码及点评 这道题考验for循环和一个简单的算法 因为每次累加的值有规律,后面一次累加是前面一次累加的两倍 所以可以用简单的循环,计算累加项和累加结果 /************ ...
随机推荐
- Java疯狂讲义(四)
- jquery 几点注意事项
jquery触发hover事件 使用 mouseenter/mouseleave/mouseover/mouseout
- opencv是什么
OpenCV是一个用于图像处理.分析.机器视觉方面的开源函数库. 不管你是做科学研究,还是商业应用,opencv都能够作为你理想的工具库,由于,对于这两者,它全然是免费的.该库採用C及C+ ...
- 暂时和永久改动oracle sysdate的默认输出格式
1.当前会话有效 alter session set NLS_DATE_FORMAT='YYYY-MM-DD:HH24:MI:SS'; 2.永久生效 sys用户登入后运行例如以下命令 然后重新启动数据 ...
- 解决JSP中,类无法被编译的问题(XX cannot be resolved to a type)
错误调试解析: An error occurred at line: XX in the jsp file: /XX.jsp XX cannot be resolved to a type 解决方法: ...
- 同时支持多家云平台的管理工具HybridFox
偶然间发现了这个firefox上的开元插件 号称支持AWS,Eucalyptus,OpenStack,OpenNebula 目的是通过一个入口实现异种云平台的管理 主要功能包括: Manage Ima ...
- 解决mysql 数据库中日期类型00:00:00 的问题 设置xml数据类型:java.util.Date
解决方法是 设置xml里面字段的类型为:java.util.Date.加红部分. 1. beanl里面private Date ulLoginDate; 2.hibernate的xml里面是 < ...
- Android GPS应用:临近警告
前面介绍过LocationManager有一个addProximityAlert(double latitude,double longitude,float radius,long expirati ...
- 畅通工程续(Dijkstra算法)
对Dijkstra算法不是很熟悉,写一下思路,希望通过写博客加深理解 Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时, ...
- ubuntu安装greenplum依赖包
ubuntu安装greenplum的过程中有两个比较难找的包,特地写出来给大家分享一下: 错误提示1:configure: error: header file <ldap.h> is r ...