文档章节

第十六章 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
博文 17
码字总数 14735
作品 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
694
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊redisson的DelayedQueue

序 本文主要研究一下redisson的DelayedQueue maven <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.8.1</version></dependenc......

go4it
28分钟前
1
0
一张图看懂JVM

JVM结构示意图 JVM总体概述 JVM总体上是由类装载子系统(ClassLoader)、运行时数据区、执行引擎、内存回收这四个部分组成。其中我们最为关注的运行时数据区,也就是JVM的内存部分则是由方法...

小致dad
29分钟前
0
0
安全管理标准

安全生产严重等级分类: 故障频次: 风险等级矩阵:

乔老哥
今天
2
0
数据结构“树”的相关微视频

今天在腾讯视频上闲逛,然後发现一个叫“岚人”的用户上传了几段小视频,基本上都在5分钟以内,讲解了关于树的一些结构和算法。零代码,非常适合初学者入门。不过,对于老鸟来说,这也是非常...

Iridium
今天
1
0
10-利用思维导图梳理JavaSE-Java 集合

10-利用思维导图梳理JavaSE-Java 集合 主要内容 1.Collection接口 2.Set接口 2.1.Set接口概述 2.2.HashSet类 2.3.TreeSet类 2.4.SortedSet接口 3.List接口 3.1.List接口概述 3.2.ArrayList类...

飞鱼说编程
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部