『C Primer Plus(第五版)中国語版』第9章第1から8題

6550 ワード

/*
 ============================================================================
1、    min(x,y),    double         ,               
  。
 ============================================================================
 */

#include 
#include 

double min(double a,double b);
int main(void){
	double a,b;
	a = 12;
	b = 20;
	printf("a=%.2f,b=%.2f,min=%.2f",a,b,min(a,b));
	return 0;
}
double min(double a,double b){
	if(a < b)
		return a;
	else
		return b;
}
/*
 ============================================================================
2、    chline(ch,i,j),       i  j    ,               
  。
 ============================================================================
 */

#include 
#include 

void chline(char ch,int i,int j);
int main(void){
	char ch = 'a';
	int i = 5;
	int j =15;
	chline(ch,i,j);
	return 0;
}

void chline(char ch,int i,int j){
	for(int k =1;k
/*
 ============================================================================
3、      。   3             ,            ,     
               ,            ,            。
 ============================================================================
 */

#include 
#include 

void chline(char ch,int i,int j);
int main(void){
	char ch = 'a';
	int i = 5;
	int j =15;
	chline(ch,i,j);
	return 0;
}

void chline(char ch,int i,int j){
	//i        
	//j      
	for(int k = 1;k<=j;k++){
		for(int s = 1;s<=i;s++)
			printf("%c",ch);
		printf("
"); } }
/*
 ============================================================================
4、               :             ,      ,      
    double  ,           。
 ============================================================================
 */

#include 
#include 

double count(double a,double b);
int main(void){
	double a,b;
	a = 5;
	b = 10;
	printf("%g,%g     :%g",a,b,count(a,b));
	return 0;
}


double count(double a,double b){
	return 1/((1/a + 1/b)/2);
}
/*
 ============================================================================
5、       larget_of(),       double                 
   。
 ============================================================================
 */

#include 
#include 

void swapxy(double * x,double * y);
int main(void){
	double a,b;
	a = 5;
	b = 10;
	swapxy(&a,&b);
	printf("a= %g,b = %g",a,b);
	return 0;
}


void swapxy(double * x,double * y){
	if(*x > *y)
		*y=*x;
	else
		*x=*y;
}
/*
 ============================================================================
6、      ,           ,        ,      ,       
            ,     ,                  ,  ,c C
       3,         :        ,                 
  ,    -1。
 ============================================================================
 */

#include 
#include 

int iszimu(char ch);
int main(void){
	char ch;
	int k;
	while((ch = getchar()) != EOF){
		k = iszimu(ch);
		if(k == -1){
			printf("%c      
",ch); }else{ printf("%c , :%d
",ch,k); } } return 0; } int iszimu(char ch){ if(ch >= 97 && ch <= 122) return ch-96; if(ch >= 65 && ch <= 90) return ch-64; return -1; }
/*
 ============================================================================
7、  6 “C    :  ”     6.20 ,  power()        double    
      ,       ,         。        0      0,    
  0   1,                      。
 ============================================================================
 */

#include 
#include 
double power(double n,int p);

int main(void){
	double n;
	int p;
	printf("       :");
	scanf("%lf %d",&n,&p);
	printf("%g^%d=%g",n,p,power(n,p));
	return 0;
}
double power(double n,int p){
	double pow =1;
	if (n == 0) return 0;
	if (p == 0) return 1;
	if(p <= -1){
		for(int i = 1;i<=-p;i++){
			pow /= n;
		}
		return pow;
	}else
		for(int i = 1;i<=p;i++)
			pow *= n;
	return pow;
}


/*
 ============================================================================
8、       7 
 ============================================================================
 */

#include 
#include 
double power(double n,int p);

int main(void){
	double n;
	int p;
	printf("       :");
	scanf("%lf %d",&n,&p);
	printf("%g^%d=%g",n,p,power(n,p));
	return 0;
}
double power(double n,int p){
	if (n == 0) return 0;
	if (p == 0)
		return 1;
	else if (p > 0)
		return n*power(n,p-1);
	else if(p < 0)
		return power(n,p+1)/n;
}
/*
 ============================================================================
9、      9.8   to_binary()    ,       to_base_n()       
 ,        2 10,                              
 。  ,to_base_n(129,8)   201,   129      ,             
    。
 ============================================================================
 */

#include 
#include 
void to_base_n(int a,int b);

int main(void){
	int a;
	int b;
	printf("              :");
	scanf("%d %d",&a,&b);
	printf("%d %d    :",a,b);
	to_base_n(a,b);
	return 0;
}

void to_base_n(int a,int b){
	int r;
	r = a % b;
	if(a >= b)
		to_base_n(a/b,b);
	printf("%d",r);
}
/*
 ============================================================================
9、         Fibonacci(),                        
 ============================================================================
 */

#include 
#include 
int fib_xunhu(int n); //         
int fib_tigui(int n); //         
int main(void){

	int n = 10;
	printf("      :%d
",fib_tigui(n)); printf(" :%d
",fib_xunhu(n)); return 0; } int fib_xunhu(int n){ int a,b; a = 0; b = 1; int sum; if(n == 0) return 0; if(n == 1) return 1; else{ for(int i = 2;i <= n;i++){ sum = a + b; a = b; b = sum; } return sum; } } int fib_tigui(int n) { if(n == 0) return 0; if(n == 1) return 1; else{ return fib_tigui(n-1)+fib_tigui(n-2); } }