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

2012年5月3日星期四

ubuntu自动挂载Windows分区


1.先將所有硬碟在檔案總管中都開啟一次(這步驟一定要作...不然第二步會查不到磁碟機資訊),這樣查出來的硬碟資訊最正確,再用終端機查出來各自的磁碟機代號,寫入到 /etc/rc.local 這樣在進入系統中就會直接掛上去了

2. 查出磁碟機的資訊
df -h 
文件系统        容量  已用  可用 已用% 挂载点
...
/dev/sda5       127G   13G  114G   11% /media/047E-1AF0
/dev/sda6       132G  4.5G  128G    4% /media/237D-1AF7
/dev/sda1        74G   14G   61G   18% /media/WINXP


2.先卸下所有磁碟機,再建立相對應的目錄

sudo umount /media/047E-1AF0
sudo umount /media/237D-1AF7
sudo umount /media/WINXP 

sudo mkdir /media/c
sudo mkdir /media/d 
sudo mkdir /media/e

3.寫到 /etc/rc.local 中

sudo gedit /etc/rc.local 加入以下的文字(要加在 exit 0 上面)
filesystem类型根据 sudo fdisk /dev/sda -l 判定
sudo mount -t vfat -o iocharset=utf8,uid=yaomj,gid=yaomj /dev/sda1 /media/c
sudo mount -t vfat -o iocharset=utf8,uid=yaomj,gid=yaomj /dev/sda5 /media/d 
sudo mount -t vfat -o iocharset=utf8,uid=yaomj,gid=yaomj /dev/sda6 /media/e 
#注:uid=yaomj,gid=yaomj 改变/media/x下文件的属主
4.這樣就在開機進入後就會直接掛上硬碟了..如果你的系統是10.4以前的,這樣作也可以直接就掛上磁碟機而且也不用密碼...
5.在12.04上用所述方法不能自动加载,可以通过expect方式,

#!/usr/bin/expect
spawn sudo mount -t vfat -o iocharset=utf8,uid=yaomj,gid=yaomj /dev/sda1 /media/c
expect {
"*password*" { send "shan\r"; exp_continue}
}
interact
然后在右上角的小齿轮->添加启动程序