『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);
}
}