文档章节

第十六章 C预处理器和C库

yohoj
 yohoj
发布于 2015/06/07 15:30
字数 609
阅读 10
收藏 0
点赞 0
评论 0

#define MAX 12 
#define SUM(X, Y) ((X) + (Y))  
#define P(X) printf("name: " #X "; value: %d; address: %p\n", X, &X)

#include<stdio.h>
#define TIA(X,Y) (2/(1/(X)+1/(Y)))

int main()
{
	double x,y;
	scanf("%lf%lf",&x,&y);
	double n=TIA(x,y);
	printf("%.2f\n",n);
	return 0;
}

#include<stdio.h> 
#include<math.h>   
struct rect polar_to_rect(struct polar v);   
#define PI 3.1415926   
struct polar{  
	double magnitude;  
	double angle; 
};  
struct rect{  
	double x;  
	double y;  
};   
int main(void) 
{  
	struct polar v; 
	struct rect l;  
	printf("Input the vector's magnitude and angle:(q to quit)\n");  
	while(scanf("%lf%lf", &v.magnitude, &v.angle) == 2)  
	{   
		l = polar_to_rect(v);    
		printf("x= %g, y = %g\n", l.x, l.y);   
		printf("Input the vector's magnitude and angle:(q to quit)\n");  
	}   
	printf("Done!\n");  return 0;  
}  
struct rect polar_to_rect(struct polar v) 
{   
	struct rect l; 
	l.x = v.magnitude * cos(v.angle * PI / 180);  
	l.y = v.magnitude * sin(v.angle * PI / 180);  
	return l;  
}

#include<stdio.h> 
#include<time.h>   
void delay(double time);   
int main(void) 
{  
	double time;   
	printf("Please input a time to deley(q to quit):\n");  
	while(scanf("%lf",&time) == 1)  
	{   
		delay(time);    
		printf("Time is out\n");   
		printf("Please input a time to deley(q to quit):\n");   
	}   
	printf("Done!\n");  
	return 0;  
}  
void delay(double time) 
{  
	double start;   
	start = clock()/CLOCKS_PER_SEC;   
	while((clock()/CLOCKS_PER_SEC) < (start +time));  
		printf("\n"); 
}

#include<stdio.h>
#include <stdlib.h>
void cha(int *a,int b,int c);
int main()
{
	int a[100];
	int b,c,i;
	puts("请输入数组大小");
	scanf("%d",&b);
	puts("请输入该数组");
	for(i=0;i<b;i++)
	{
		scanf("%d",&a[i]);
	}
	puts("请输入选取次数");
	scanf("%d",&c);
	cha(a,b,c);
	return 0;
}

void cha(int *a,int b,int c)
{
	int num,p[100],i,j,count,k=0;
	for(i=0;i<c;i++)
	{
		num=rand()%b;
		for(j=0,count=0;j<i;j++)
		{
			if(num==p[j])
			{
				count=1;
				break;
			}
		}
		if(count == 0)
			p[k++]=num;

	}
	for(i=0;i<c;i++)
		printf("%d ",a[p[i]]);
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define N 10
#define M 5
struct names{
	char fname[N];
	char lname[N];
};
void showarray(struct names people[],int n);
int mycomp(const void * p1,const void * p2);

int main(void)
{
	struct names people[N]{
		{"jkd","djk"},
		{"fjk","dkff"},
		{"jdfk","iwe"},
		{"czzv","ozuy"},
		{"urn","eiic"}
	};
	puts("Random list:");
	showarray(people,M);
	qsort(people,M,sizeof(struct names),mycomp);
	puts("\nSorted list:");
	showarray(people,M);
	return 0;
}


void showarray(struct names people[],int n)
{
	int index;
	for(index = 0;index < n;index++)
	{
		printf("%s %s ",people[index].fname,people[index].lname);
		if(index % 6 == 5)
			putchar('\n');
	}
	if(index % 6 != 0)
		putchar('\n');
}

int mycomp(const void * p1,const void * p2)
{
	const struct names * a1 = (const struct names *)p1;
	const struct names * a2 = (const struct names *)p2;
	int n;
	n=strcmp(a1->lname,a2->lname);
	if(n != 0)
		return n;
	else
		return strcmp(a1->fname,a2->fname);
}

#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>
void show_array(const double ar[],int n);
double * new_d_array(int n, ...);
int main()
{
	double * p1;
	double * p2;

	p1 = new_d_array(5,1.2,2.3,3.4,4.5,5.6);
	p2 = new_d_array(4,100.0,20.00,8.08,-1890.0);
	show_array(p1,5);
	show_array(p2,4);
	free(p1);
	free(p2);

	return 0;
}

void show_array(const double ar[],int n)
{
	int i;
	for(i=0;i<n;i++)
		printf("%g\t",ar[i]);
	putchar('\n');
}

double * new_d_array(int n, ...)
{
	double *p ;
	int i;
	va_list ap;   
	p = (double *)malloc(n*sizeof (double));  
	va_start(ap,n);  
	for(i = 0;i < n; i++)    
		p[i] = va_arg(ap,double);  
	va_end(ap);  
	return p;
}


© 著作权归作者所有

共有 人打赏支持
yohoj
粉丝 0
博文 16
码字总数 14735
作品 0
宁波
C Primer Plus 第11章 11.7 ctype.h字符函数和字符串

第7章“C控制语句 分支和跳转”介绍了ctype.h系列字符相关的函数。这些函数不能被 应用于整个字符串,但是可以被应用于字符串中的个别字符。程序清单11.26定义了一个函数,它把toupper( )函数...

idreamo ⋅ 2016/08/27 ⋅ 0

[编程语言]C陷阱与缺陷

内容摘要 作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过...

21gprs ⋅ 2014/05/23 ⋅ 0

#define 中的“ # 运算符”和“ ## 运算符”

利用宏参数创建字符串:# 运算符 在类函数宏(function-like macro)的替换部分中,“#”符号用作一个预处理运算符,它可以把语言符号(token)转化为字符串。例如,如果 x 是一个宏参量,那...

TMDJoJo ⋅ 2012/07/07 ⋅ 0

【原创】《深入剖析Tomcat》读书笔记

第一章 一个简单的Web服务器 第二章 一个简单的servlet容器 第三章 连接器 第四章 Tomcat的默认连接器 第五章 servlet容器 第六章 生命周期 第七章 日志记录器 第八章 载入器 第九章 Sessio...

pandudu ⋅ 2015/12/22 ⋅ 0

Makefile编译选项

-D:条件选择编译 -I :头文件搜索路径 -l:连接静态库 静态库打包命令的名字,缺省值是。 静态库打包命令的选项,缺省值是。 汇编器的名字,缺省值是。 汇编器的选项,没有定义。 CC C编译器的...

长平狐 ⋅ 2012/09/03 ⋅ 0

gcc编译工具详解

gcc识别的文件的扩展名如下: .c c语言程序。 .i c语言预处理后的文件。 .C .cc. cpp. cp c++程序。 .ii c++预处理后的程序。 .S 汇编文件 .s 预处理后的汇编文件。 .o 编译后的目标文件。 ...

zhanggong ⋅ 2016/01/02 ⋅ 0

JCPP

JCPP 是一个完整、兼容、独立的纯Java 实现的 C 语言预处理器,其目的是为了使用编写在 Java 中可使用的 C 风格编译器,例如:sablecc, antlr, JLex, CUP 等等,JCPP 已经成功的对很多 GNU ...

匿名 ⋅ 2012/01/29 ⋅ 0

C程序编译过程浅析

原文出处:笑遍世界,2012-01-08 前几天看了《程序员的自我修养——链接、装载与库》中的第二章“编译和链接”,主要根据其中的内容简单总结一下C程序编译的过程吧。 我现在一般都是用gcc,所...

笑遍世界,2012-01-08 ⋅ 2016/12/28 ⋅ 0

简单而小型的单通道 C 编译器--SmallerC

SmallerC 是一个简单而小型的单程 C 编译器,目前支持 C89/ANSI C 和 C99 之间的大部分 C 语言(去掉了一些 C89 功能,加上一些 C99 功能) 目前,它为 NASM 生成 16 位和 32 位 80386+ 汇编...

匿名 ⋅ 2017/10/15 ⋅ 0

libCURL开源库在VS2010环境下编译安装,配置详解

CURL开源库VS2010环境下编译安装,配置详解 一 准备 1.1 CURL官网下载地址:http://curl.haxx.se/download.html 1.2 找到源码包,我这里下载的是7.32.0版:http://curl.haxx.se/download/cu...

goodslaver ⋅ 2014/02/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

005. 深入JVM学习—Java堆内存参数调整

1. JVM整体内存调整图解(调优关键) 实际上每一块子内存区域都会存在一部分可变伸缩区域,其基本流程:如果内存空间不足,则在可变的范围之内扩大内存空间,当一段时间之后,内存空间不紧张...

影狼 ⋅ 12分钟前 ⋅ 0

内存障碍: 软件黑客的硬件视图

此文为笔者近日有幸看到的一则关于计算机底层内存障碍的学术论文,并翻译(机译)而来[自认为翻译的还行],若读者想要英文原版的论文话,给我留言,我发给你。 内存障碍: 软件黑客的硬件视图...

Romane ⋅ 45分钟前 ⋅ 0

SpringCloud 微服务 (七) 服务通信 Feign

壹 继续第(六)篇RestTemplate篇 做到现在,本机上已经有注册中心: eureka, 服务:client、order、product 继续在order中实现通信向product服务,使用Feign方式 下面记录学习和遇到的问题 贰 or...

___大侠 ⋅ 今天 ⋅ 0

gitee、github上issue标签方案

目录 [TOC] issue生命周期 st=>start: 开始e=>end: 结束op0=>operation: 新建issueop1=>operation: 评审issueop2=>operation: 任务负责人执行任务cond1=>condition: 是否通过?op3=>o......

lovewinner ⋅ 今天 ⋅ 0

浅谈mysql的索引设计原则以及常见索引的区别

索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则: 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索...

屌丝男神 ⋅ 今天 ⋅ 0

String,StringBuilder,StringBuffer三者的区别

这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。 首先说运行速度,或者说是, 1.执行速度 在这方面运行速度快慢为:StringBuilder(线程不安全,可变) > StringBuffer...

时刻在奔跑 ⋅ 今天 ⋅ 0

java以太坊开发 - web3j使用钱包进行转账

首先载入钱包,然后利用账户凭证操作受控交易Transfer进行转账: Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/Credentials credentials = Wallet......

以太坊教程 ⋅ 今天 ⋅ 0

Oracle全文检索配置与实践

Oracle全文检索配置与实践

微小宝 ⋅ 今天 ⋅ 0

mysql的分区和分表

1,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一...

梦梦阁 ⋅ 今天 ⋅ 0

exception.ZuulException: Forwarding error

错误日志 com.netflix.zuul.exception.ZuulException: Forwarding error Caused by: com.netflix.hystrix.exception.HystrixRuntimeException: xxx timed-out and no fallback available. Ca......

jack_peng ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部