文档章节

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

yohoj
 yohoj
发布于 2015/06/07 15:30
字数 609
阅读 10
收藏 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
码字总数 14691
作品 0
宁波
私信 提问
C Primer Plus 第11章 11.7 ctype.h字符函数和字符串

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

idreamo
2016/08/27
29
0
[编程语言]C陷阱与缺陷

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

21gprs
2014/05/23
0
0
#define 中的“ # 运算符”和“ ## 运算符”

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

TMDJoJo
2012/07/07
0
0
【原创】《深入剖析Tomcat》读书笔记

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

pandudu
2015/12/22
46
0
Makefile编译选项

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

长平狐
2012/09/03
738
0

没有更多内容

加载失败,请刷新页面

加载更多

微服务分布式事务实现

https://www.processon.com/view/link/5b2144d7e4b001a14d3d2d30

WALK_MAN
今天
2
0
《大漠烟尘》读书笔记及读后感文章3700字

《大漠烟尘》读书笔记及读后感文章3700字: 在这个浮躁的社会里,你有多久没有好好读完一本书了? 我们总觉得自己和别人不一样,所以当看到别人身上的问题时,很少有“反求诸己”,反思自己。...

原创小博客
今天
3
0
大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
今天
3
0
十万个为什么之什么是resultful规范

起源 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点...

尾生
今天
3
0
Terraform配置文件(Terraform configuration)

Terraform配置文件 翻译自Terraform Configuration Terraform用文本文件来描述设备、设置变量。这些文件被称为Terraform配置文件,以.tf结尾。这一部分将讲述Terraform配置文件的加载与格式。...

buddie
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部