Linux Linux程序练习三
/*
index1 = 45
index2 = 36
index3 = 231
index4 = 43
index5 = 100
index6 = 123
index7 = 51
*
*
通过读取读取c.txt文件内容中等号右值,并将右值最大值,最小值和平均值打印到屏幕。
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h> //删除'\n'
void removeenter(char * str)
{
if (str == NULL)
{
printf("传入参数不可以为空!\n");
return;
}
char * temp = str;
while (*temp)
{
if (*temp == '\n')
{
*temp = '\0';
}
temp++;
}
} //获取数字
char * getnum(char * str)
{
if (str == NULL)
{
printf("传入参数不可以为空!\n");
return NULL;
}
str=strchr(str,'=');
while (*str)
{
if (*str>''&&*str<'')
{
break;
}
str++;
}
return str;
} //read the file
void readfile(char *path, int *arr, int *len)
{
if (path == NULL || arr == NULL || len == NULL)
{
printf("传入参数不可以为空!\n");
return;
}
//define the file stream
FILE * pfr = NULL;
//open the file in read mode
pfr = fopen(path, "r");
//judge
if (pfr == NULL)
{
printf("read the file failed ! error msg:%s\n", strerror(errno));
return;
}
//read the file
char buf[] = { };
int index = ;
while (fgets(buf, sizeof(buf), pfr))
{
//fgets()函数读取字符串时,会读取'\n'
removeenter(buf);
arr[index++] = atoi(getnum(buf));
memset(buf, , sizeof(buf));
}
*len = index;
//close the file
if (pfr)
{
fclose(pfr);
pfr = NULL;
}
} void SelectionSort(int *arr, int len, int *max, int *min, double *avg)
{
if (arr == NULL || max == NULL || min == NULL || avg == NULL)
{
printf("传入参数不可以为空!\n");
return;
}
int i = , j = , k = , temp = ;
for (; i < len; i++)
{
k = i;
for (j = i + ; j < len; j++)
{
if (arr[k] > arr[j])
{
k = j;
}
}
if (k != i)
{
temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
*max = arr[len - ];
*min = arr[];
temp = ;
printf("排序之后的\n");
for (i = ; i < len; i++)
{
printf("%d\n", arr[i]);
temp += arr[i];
}
printf("排序在此结束\n");
*avg = temp / len;
} int main(int arg, char * args[])
{
if (arg < )
{
printf("请输入一个参数!\n");
return ;
}
int arr[] = { };
int len = ;
int maxnum = ;
int minnum = ;
double avgnum = ;
readfile(args[], arr, &len);
SelectionSort(arr, len, &maxnum, &minnum, &avgnum);
printf("最大值:%d\n", maxnum);
printf("最小值:%d\n", minnum);
printf("平均值:%lf\n", avgnum);
return ;
}
Linux Linux程序练习三的更多相关文章
- Linux及安全实践三——程序破解
Linux及安全实践三--程序破解 一.基本知识 常用指令机器码 指令 作用 机器码 nop 无作用(no operation) 90 call 调用子程序,子程序以ret结尾 e8 ret 返回程序 ...
- 第六章第一个linux个程序:统计单词个数
第六章第一个linux个程序:统计单词个数 从本章就开始激动人心的时刻——实战,去慢慢揭开linux神秘的面纱.本章的实例是统计一片文章或者一段文字中的单词个数. 第 1 步:建立 Linu x 驱 ...
- linux应用程序地址布局,王明学learn
linux应用程序地址布局 在学习Linux应用程序开发时,经常会遇到如下概念:代码段.数据段.BSS段(Block Started by Symbol,又名:未初始化数据段).堆(heap)和栈(s ...
- 配置开发支持高并发TCP连接的Linux应用程序全攻略
http://blog.chinaunix.net/uid-20733992-id-3447120.html http://blog.chinaunix.net/space.php?uid=16480 ...
- Linux C程序的编译过程
Linux C程序的编译过程 学习一门语言程序,本人觉得还是得学习它的编译规则,现在,通过小例子小结下自己对C编译的认识. /*test.c 了解C程序的编译*/ #include <s ...
- 服务器编程入门(5)Linux服务器程序规范
问题聚焦: 除了网络通信外,服务器程序通常还必须考虑许多其他细节问题,这些细节问题涉及面逛且零碎,而且基本上是模板式的,所以称之为服务器程序规范. 工欲善其事,必先利其器,这篇主要来探 ...
- 十天学Linux内核之第三天---内存管理方式
原文:十天学Linux内核之第三天---内存管理方式 昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今 ...
- Linux C++程序进行性能分析工具gprof使用入门
性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是 ...
- 运维之Linux基础知识(三)
运维之Linux基础知识(三) 1. 查看文本 cat tac more less head tail 1.1 cat 连接并显示文件 cat -n:在显示的时候,将每一行编号 -E:显示结束符$ - ...
- Linux 高性能服务器编程——Linux服务器程序规范
问题聚焦: 除了网络通信外,服务器程序通常还必须考虑许多其他细节问题,这些细节问题涉及面逛且零碎,而且基本上是模板式的,所以称之为服务器程序规范. 工欲善其事,必先利其器,这篇主要来探 ...
随机推荐
- 【mybatis】mybatis方法访问报错:org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.pisen.cloud.luna.ms.goods.base.domain.GoodsConfigQuery
在调用mapper.xml中的方法的时候,报错: org.apache.ibatis.builder.IncompleteElementException: Could not find result ...
- Java程序运行的内存分配
Java的内存分配 A:栈 存储局部变量 B:堆 存储所有new出来的 C:方法区(程序代码及方法相关) D:本地方法区(系统相关) E:寄存器(CPU使用) 注意: a:局部变量 在方法定义中或者方 ...
- codeforces round #264(div2)
A题 我仅仅想说题意非常坑,一不小心就会wa,哎,不机智的我居然在最后判题的过程中错了,少加一个推断语句. 错的值了,你说呢? #include<map> #include<cm ...
- 一起來玩鳥 Starling Framework(6)Juggler、Tween、以及DelayCall
這篇開始來講Starling裡的Animation.Juggle是個簡單的Class,用來控制動畫的進行.他負責管理經由add()加進來的實現IAnimatable介面的物件,然後當Juggler的a ...
- 如何在Ubuntu上使用Glances监控系统
导读 Glances 是一个用于监控系统的跨平台.基于文本模式的命令行工具.它是用 Python 编写的,使用 psutil 库从系统获取信息.你可以用它来监控 CPU.平均负载.内存.网络接口.磁盘 ...
- 转:ios的crash框架方法论
http://www.cocoachina.com/ios/20150701/12301.html 1. 其中提到的提高ios崩溃率的用法.
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-Switch Case语句是否会自动跳转到下一个
在C#中,每一个case后面必须有break,所以输出1,也就是如果a=0,则只会执行case=0的那一段,当等于1之后不会继续. 在TwinCAT中,虽然CASE语句没有break,但是实际上不 ...
- webpack的配置文件entry与output
在webpack.config.js中entry是唯一入口文件 entry也可以是一个数组 如果是一个数组,会将数组里面的文件一起打包到bundle.js entry也可以是一个对象. 如果outpu ...
- bjxdpkdzvaciu
xufutwovrcgwcdjrmkmsmoiemsgsfk
- C++/C混合编程
C与C++混合编程 C++ 是在 C 语言的基础上发展起来的.在某种程度上,我们可将 C++ 看做 C 的一种扩展.在本质上,二者的数据类型和函数调用惯例都是一致的,因此 C 与 C++ 混合编译也是 ...