第一次发博客,新手初试啊,题目如下:有两个10个元素的数组,分别为A和B,编程实现相同位置的元素, 如果 B 的元素小于 A 的元素进行数值交换:(使用回调函数实现)
2015-06-25 19:48
1251 查看
在main主函数中函数调用
int a[10] = {0};
int b[10] = {0};
randomArray(a, 10); //随机值
randomArray(b, 10); //随机值
changeBiger(a, b, sizeof(a) / sizeof(int), changeValue); //数值比较交换
printf("数值交换后\n");
for (int i = 0; i < 10; i++) {
printf("%d ",a[i]);
}
printf("\n");
for (int i = 0; i < 10; i++) {
printf("%d ",b[i]);
}
printf("\n");
函数中涉及到的函数定义:
void randomArray(int a[], int count) //随机生成元素
{
for (int i = 0; i < count; i++) {
a[i] = arc4random()% 21 + 20; //随机范围[20,40]
printf("%d ",a[i]);
}
printf("\n");
}
void changeValue(int *p1, int *p2) //数值比较交换
{
if (*p1 > *p2) {
int c = *p1;
*p1 = *p2;
*p2 = c;
}
}
void changeBiger(int a[], int b[],int count, CHANGE p) //使用回调函数
{
for (int i = 0; i < count; i++) {
p(&a[i], &b[i]);
}
}
程序执行结果为:
36 38 32 27 33 22 29 32 27 24
30 39 38 25 39 28 27 40 40 26
数值交换后
30 38 32 25 33 22 27 32 27 24
36 39 38 27 39 28 29 40 40 26
根据结果比较可以看出,我们的程序基本是实现了要求的功能!
int a[10] = {0};
int b[10] = {0};
randomArray(a, 10); //随机值
randomArray(b, 10); //随机值
changeBiger(a, b, sizeof(a) / sizeof(int), changeValue); //数值比较交换
printf("数值交换后\n");
for (int i = 0; i < 10; i++) {
printf("%d ",a[i]);
}
printf("\n");
for (int i = 0; i < 10; i++) {
printf("%d ",b[i]);
}
printf("\n");
函数中涉及到的函数定义:
void randomArray(int a[], int count) //随机生成元素
{
for (int i = 0; i < count; i++) {
a[i] = arc4random()% 21 + 20; //随机范围[20,40]
printf("%d ",a[i]);
}
printf("\n");
}
void changeValue(int *p1, int *p2) //数值比较交换
{
if (*p1 > *p2) {
int c = *p1;
*p1 = *p2;
*p2 = c;
}
}
void changeBiger(int a[], int b[],int count, CHANGE p) //使用回调函数
{
for (int i = 0; i < count; i++) {
p(&a[i], &b[i]);
}
}
程序执行结果为:
36 38 32 27 33 22 29 32 27 24
30 39 38 25 39 28 27 40 40 26
数值交换后
30 38 32 25 33 22 27 32 27 24
36 39 38 27 39 28 29 40 40 26
根据结果比较可以看出,我们的程序基本是实现了要求的功能!
相关文章推荐
- java.util.properties使用方法
- 今天遇到奇怪的事:SVN本地代码的标记突然没了,Clean up也报错
- Spring IO 平台介绍
- 让Xcode Lua 语法高亮
- TFTP & commons-net-3.3.jar
- C++ 运算符重载的注意点
- C++ Primer学习7:const iterator与const_iterator的区别
- C# 实体类序列化与反序列化一 (XmlSerializer)
- C# 实体类序列化与反序列化一 (XmlSerializer)
- c# des 加密 解密
- 《第一行代码》中的一个小例子
- getsockname()和getpeername()
- spring源码理解-BeanFactory子类XmlBeanFactory的创建过程
- C++ Primer快速学习 第一章 入门之二:输入与输出 (IO)
- C#读取文件路径
- java byte 与 int float转换
- 简单的一个php验证登陆代码
- C++ Primer学习6:const指针 和 指针与const限定符区别
- java对象与json对象间的相互转换
- 在C#中子线程如何操作主窗口线程上的控件