显示标签为“c”的博文。显示所有博文
显示标签为“c”的博文。显示所有博文

2012年5月14日星期一

learning c-ch06


//打印1-100中含9的数字
#include<stdio.h>
int main(void){
int i = 0;
while(i<100){
if(gewei(i)==9||shiwei(i)==9){
printf("%d\n",i);
}
i++;
}
}

int gewei(int x){
return x%10;
}

int shiwei(int x){
if(x<10) return 0;
return x/10;
}

//习题 
#include<math.h>
#include<stdio.h>
int main(void){
//print99();
void diamond(int,char);
diamond(3,'*');
diamond(5,'#');
}
//求两点直接距离的平方
int distance(int x1,int y1,int x2,int y2){
return (x2-x1) * (x2-x1) + (y2-y1) * (y2-y1);
}
//打印菱形
void diamond(int x,char c){
int i,j;
int t =(x+1)/2;//菱形中心位置x,y坐标
int d = x/2;//菱形离中心位置的最大距离
for(i=1;i<=x;i++){
for(j=1;j<=x;j++){
if(distance(i,j,t,t)>d*d){
printf(" ");
}else{
printf("%c",c);
}
}
printf("\n");
}
}
//打印99乘法口诀表
void print99(void){
int i,j;
for(i=1;i<10;i++){
for(j=1;j<=i;j++){
int temp = i*j;
printf("%d",temp);
if(temp<10){//补齐2位
printf(" ");
}
printf(" ");
}
printf("\n");
}
}

learning c-ch07



#include<stdio.h>

struct rational{double z,m;};

int main(void){
struct rational addr(struct rational a,struct rational b);
struct rational subr(struct rational a,struct rational b);
struct rational mulr(struct rational a,struct rational b);
struct rational divr(struct rational a,struct rational b);
void print(struct rational r);
struct rational a={1,2};
struct rational b={3,4};
print(addr(a,b));
print(subr(a,b));
print(mulr(a,b));
print(divr(a,b));
}

struct rational addr(struct rational a,struct rational b){
struct rational c;
c.z = a.z*b.m+b.z*a.m;
c.m = a.m*b.m;
return c;
}

struct rational subr(struct rational a,struct rational b){
    struct rational c;
    c.z = a.z*b.m-b.z*a.m;
    c.m = a.m*b.m;
    return c;
}

struct rational mulr(struct rational a,struct rational b){
    struct rational c;
    c.z = a.z*b.z;
    c.m = a.m*b.m;
    return c;
}

struct rational divr(struct rational a,struct rational b){
    struct rational c;
    c.z = a.z*b.m;
    c.m = a.m*b.z;
    return c;
}

void print(struct rational r){
printf("%f,%f\n",r.z,r.m);
}