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

原创
2015/06/07 15:30
阅读数 15

#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;
}


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部