C语言练习作业(五)
2015-11-26 20:12
344 查看
关于指针:
指针真的好复杂啊,第二遍学还是很迷糊,总是分不清什么时候画带“*”,什么时候不带。看来还是应该多练习,先贴上这道题吧,感觉做完这题之后有些头绪了。
题目:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:
(1)输入10个数
(2)进行处理
(3)输出10个数
用于处理的函数里面有两段代码,上面注释掉的是一开始自己想的,看了答案后才明白这里可以用指针写,就合上书本自己试着写了下面的那段代码,再看答案,发现仍然有疏忽的地方,有些特例没有考虑到,不过不想再改了,以后再说吧。
指针真的好复杂啊,第二遍学还是很迷糊,总是分不清什么时候画带“*”,什么时候不带。看来还是应该多练习,先贴上这道题吧,感觉做完这题之后有些头绪了。
题目:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:
(1)输入10个数
(2)进行处理
(3)输出10个数
#include<stdio.h> #include<string.h> void input(int *);//输入函数 void exchange(int *a);//交换数字 void output(int *a); int main() { int a[10] = { 0 }; input(a); exchange(a); output(a); return 0; } void input(int *a) { printf_s("请输入10个整数:\n"); for (int i = 0; i < 10; i++) { scanf_s("%d", &a[i]); } /*for (int j = 0; j < 10; j++) { printf_s("%d ", a[j]); }*/ } void exchange(int *a) { /*int t = 0, t2 = 0; int n = 0; int max = 0, min = 0; for (int i = 0; i < 10; i++) { if (a[i] > t) { t = a[i]; n = i; } } max = t; t2 = a[9]; a[9] = max; a = t2; for (int j = 0; j < 10; j++) { if (a[j] < t) { t = a[j]; n = j; } } min = t; t2 = a[0]; a[0] = min; a = t2;*/ int *max, *min, *p, temp; max = min = p = a; for (p = a + 1; p < 10; p++) { if (*p > *max) { max = p; } } temp = *max; *max = a[9]; a[9] = temp; for (p = a + 1; p < 10; p++) { if (*p < *min) { min = p; } } temp = *min; *min = a[0]; a[0] = temp; } void output(int *a) { for (int i = 0; i < 10; i++) { printf_s("%d ", a[i]); } }
用于处理的函数里面有两段代码,上面注释掉的是一开始自己想的,看了答案后才明白这里可以用指针写,就合上书本自己试着写了下面的那段代码,再看答案,发现仍然有疏忽的地方,有些特例没有考虑到,不过不想再改了,以后再说吧。
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- Lua和C语言的交互详解
- C# Pointer指针应用实例简述
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法