對KMOL研究課題有興趣嗎?
從現在開始學習就有機會 大學+研究所只要五年就能畢業唷!
請在下面留言或是直接至本研究室詢問,
我們能讓您更深入了解本團隊。
2009年12月31日 星期四
2009年12月28日 星期一
fscanf讀取檔案內的值
#include <stdio.h>
#include <stdlib.h>
int main()
{
char w[10];
int n;
FILE *f = fopen("input.txt","r");
fscanf(f,"%s", w);
n = atoi(w);
printf("%d\n", n);
return 0;
}
#include <stdlib.h>
int main()
{
char w[10];
int n;
FILE *f = fopen("input.txt","r");
fscanf(f,"%s", w);
n = atoi(w);
printf("%d\n", n);
return 0;
}
2009年12月22日 星期二
2009年12月21日 星期一
01201程式
#include <stdio.h>
void print_zero(int width, int height, int line_num, int br_or_not);
void print_one(int width, int height, int line_num, int br_or_not);
void print_two(int width, int height, int line_num, int br_or_not);
int main()
{
int i, width, height;
width=9;
height=9;
for (i=1;i<=height;i++)
{
print_zero(width,height,i,0);
printf(" ");
print_one(width,height,i,0);
printf(" ");
print_two(width,height,i,0);
printf(" ");
print_zero(width,height,i,0);
printf(" ");
print_one(width,height,i,1);
}
return 0;
}
void print_zero(int width, int height, int line_num, int br_or_not)
{
int i,j;
j=0;
// print first line
if (line_num == 1 || line_num == height)
{
// print the whole line
printf("o");
for (i=0;i < width-2;i++)
{
printf("-");
}
printf("o");
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
else
{
// repeat print position 1 and the last one
for (j=0;j < width;j++)
{
if(j==0 || j==width-1)
{
printf("|");
}
else
{
printf(" ");
}
}
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
}
void print_one(int width, int height, int line_num, int br_or_not)
{
int i, middle;
middle = width/2;
for (i=0;i<height;i++)
{
for (i=0;i<width;i++)
{
if (i==middle)
{
printf("|");
}
else
{
printf(" ");
}
}
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
}
void print_two(int width, int height, int line_num, int br_or_not)
{
int i,j;
j=0;
// print first line
if (line_num == 1 || line_num == height||line_num == (height/2)+1)
{
// print the whole line
printf("o");
for (i=0;i < width-2;i++)
{
printf("-");
}
printf("o");
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
else
{
// repeat print position 1 and the last one
for (j=0;j < width;j++)
{
if(j==width-1 && line_num <= (height/2))
{
printf("|");
}
else if(j==0 && line_num > (height/2))
{
printf("|");
}
else
{
printf(" ");
}
}
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
}
void print_zero(int width, int height, int line_num, int br_or_not);
void print_one(int width, int height, int line_num, int br_or_not);
void print_two(int width, int height, int line_num, int br_or_not);
int main()
{
int i, width, height;
width=9;
height=9;
for (i=1;i<=height;i++)
{
print_zero(width,height,i,0);
printf(" ");
print_one(width,height,i,0);
printf(" ");
print_two(width,height,i,0);
printf(" ");
print_zero(width,height,i,0);
printf(" ");
print_one(width,height,i,1);
}
return 0;
}
void print_zero(int width, int height, int line_num, int br_or_not)
{
int i,j;
j=0;
// print first line
if (line_num == 1 || line_num == height)
{
// print the whole line
printf("o");
for (i=0;i < width-2;i++)
{
printf("-");
}
printf("o");
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
else
{
// repeat print position 1 and the last one
for (j=0;j < width;j++)
{
if(j==0 || j==width-1)
{
printf("|");
}
else
{
printf(" ");
}
}
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
}
void print_one(int width, int height, int line_num, int br_or_not)
{
int i, middle;
middle = width/2;
for (i=0;i<height;i++)
{
for (i=0;i<width;i++)
{
if (i==middle)
{
printf("|");
}
else
{
printf(" ");
}
}
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
}
void print_two(int width, int height, int line_num, int br_or_not)
{
int i,j;
j=0;
// print first line
if (line_num == 1 || line_num == height||line_num == (height/2)+1)
{
// print the whole line
printf("o");
for (i=0;i < width-2;i++)
{
printf("-");
}
printf("o");
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
else
{
// repeat print position 1 and the last one
for (j=0;j < width;j++)
{
if(j==width-1 && line_num <= (height/2))
{
printf("|");
}
else if(j==0 && line_num > (height/2))
{
printf("|");
}
else
{
printf(" ");
}
}
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
}
2009年12月15日 星期二
練習題1
//試著使用迴圈寫出47-44-41-38-35.....-m=sum的等差程式,
//且m可以由使用者輸入。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,m,sum;
sum=47;
i=sum;
printf("輸入m值:");
scanf("%d",&m);
do
{
i-=3;
sum-=i;
}while(i>m);
printf("\n47-44-41-38-35.....-%d=%d",m,sum);
return 0;
}
//且m可以由使用者輸入。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,m,sum;
sum=47;
i=sum;
printf("輸入m值:");
scanf("%d",&m);
do
{
i-=3;
sum-=i;
}while(i>m);
printf("\n47-44-41-38-35.....-%d=%d",m,sum);
return 0;
}
這是我值宿舍TA時別班同學問的考題,
Close 網路、Close Book、Close go home、Close cheat、Close Computer、Close 醬,
聽說這題他們全班陣亡...
Close 網路、Close Book、Close go home、Close cheat
2009年12月14日 星期一
第二次考試答案
第一題:
//然後將"日一二三四五六"改成"一二三四五六日"。
第二題:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int sum,num,solve;
printf("請輸入數字:");
scanf("%d",&sum);
while(1)
{
printf("\n請輸入運算子:");
scanf("%d",&solve);
if(solve==0)
{
break;
}
printf("\n請輸入數字:");
scanf("%d",&num);
if(solve==1)
{
//sum=sum+num;
sum+=num;
}
else if(solve==2)
{
//sum=sum*num;
sum*=num;
}
else
{
printf("Error\n");
}
}
printf("答案:%d",sum);
return 0;
}
第三題:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int password=123;
int x,a;
char word[30];
for(a=0;a<3;a++)
{
printf("\nEnter password number:");
scanf("%s",word);
x=atoi(word);
if(x==password)
{
printf("\nSuccess!!");
break;
}
else
{
if (a==2)
{
printf("\nFail!!");
}
else
{
printf("\nFail!! \nonce again!!");
}
}
}
}
/*由1981非閏年作為起始點,
閏年的數量:(yaer-1981)/4
到現在共(year-1981)年數
1981年是從星期四開始所以+3
將這些空格全部加起來是總共空的格數
除以7得到的餘數就是該年一開始的空格數量*/
space=(((year-1981)/4)+(year-1981)+3)%7;
//然後將"日一二三四五六"改成"一二三四五六日"。
第二題:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int sum,num,solve;
printf("請輸入數字:");
scanf("%d",&sum);
while(1)
{
printf("\n請輸入運算子:");
scanf("%d",&solve);
if(solve==0)
{
break;
}
printf("\n請輸入數字:");
scanf("%d",&num);
if(solve==1)
{
//sum=sum+num;
sum+=num;
}
else if(solve==2)
{
//sum=sum*num;
sum*=num;
}
else
{
printf("Error\n");
}
}
printf("答案:%d",sum);
return 0;
}
第三題:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int password=123;
int x,a;
char word[30];
for(a=0;a<3;a++)
{
printf("\nEnter password number:");
scanf("%s",word);
x=atoi(word);
if(x==password)
{
printf("\nSuccess!!");
break;
}
else
{
if (a==2)
{
printf("\nFail!!");
}
else
{
printf("\nFail!! \nonce again!!");
}
}
}
}
第二次考試
第一題:
請參考年曆方程式,
可輸入1981年以後的年份,
印出該年的年曆,
而且每週的第一天從星期一開始。
第二題:
請寫一計算機,
能不斷輸入數字並且計算+*
能先輸入一個數字後,
然後當使用者
輸入1時計算相加
輸入2時計算相乘
輸入0時得出結果
....
結果:
請輸入數字:5
請輸入運算子:1
請輸入數字:8
請輸入運算子:2
請輸入數字:3
請輸入運算子:0
答案:39
第三題:
請寫一個程式,
能夠判斷密碼是否正確,
當輸入正確的密碼則印出密碼正確,
當輸入錯誤的密碼或輸入的不是整數,
則印出密碼錯誤請重新輸入,
並且當輸入錯誤三次時離開程式,
輸入文字型態password number,
將文字型態轉換成數字型態作判斷,
最多判斷三次。
請參考年曆方程式,
可輸入1981年以後的年份,
印出該年的年曆,
而且每週的第一天從星期一開始。
第二題:
請寫一計算機,
能不斷輸入數字並且計算+*
能先輸入一個數字後,
然後當使用者
輸入1時計算相加
輸入2時計算相乘
輸入0時得出結果
....
結果:
請輸入數字:5
請輸入運算子:1
請輸入數字:8
請輸入運算子:2
請輸入數字:3
請輸入運算子:0
答案:39
第三題:
請寫一個程式,
能夠判斷密碼是否正確,
當輸入正確的密碼則印出密碼正確,
當輸入錯誤的密碼或輸入的不是整數,
則印出密碼錯誤請重新輸入,
並且當輸入錯誤三次時離開程式,
輸入文字型態password number,
將文字型態轉換成數字型態作判斷,
最多判斷三次。
2009年12月8日 星期二
任意輸出年曆...(有陰謀的@__@)
//這個程式不見得是最好的寫法,歡迎同學務必把它改得更好。
#include <stdio.h>
#include <stdlib.h>
int ouput(int space,int month);
int main()
{
int m,month,year,space,bissextile=0;
while(1)
{
printf("----------------------------\nYear:");
scanf("%d",&year);
//當輸入小於1980年時跳出程式,
if(year<1980)
{
printf("Can not be calculated!!\n");
break;
}
/*想辦法寫出該年一開始空格數量的計算式,
先不公佈我的寫法自己先想想看。*/
space=???????????;
//判斷該年是否為閏年
if((year-1980)%4==0)
bissextile=1;
//判斷不同月份的大小月
for(m=1;m<=12;m++)
{
if(m==4||m==6||m==9||m==11)
{
month=30;
}
else if(m==2&&bissextile==1)
{
month=29;
}
else if(m==2&&bissextile==0)
{
month=28;
}
else
{
month=31;
}
printf("\nMonth %d :\n",m);
//呼叫先前打過的月曆程式
ouput(space,month);
//先計算出下個月該空幾格
space=(space+month)%7;
}
}
system("pause");
return 0;
}
int ouput(int space,int month)
{
int i,day=1;
printf(" SUN MON TUE WED THU FRI SAT\n");
for(i=1;i<=month+space;i++)
{
if(i<=space)
{
//每個日期的四格間距
printf(" ");
}
else
{
// (i 除以7的餘數)不等於 0
if((i%7)!=0)
{
printf("%4d",day);
}
else
{
printf("%4d\n",day);
}
day++;
}
}
printf("\n");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int ouput(int space,int month);
int main()
{
int m,month,year,space,bissextile=0;
while(1)
{
printf("----------------------------\nYear:");
scanf("%d",&year);
//當輸入小於1980年時跳出程式,
if(year<1980)
{
printf("Can not be calculated!!\n");
break;
}
/*想辦法寫出該年一開始空格數量的計算式,
先不公佈我的寫法自己先想想看。*/
space=???????????;
//判斷該年是否為閏年
if((year-1980)%4==0)
bissextile=1;
//判斷不同月份的大小月
for(m=1;m<=12;m++)
{
if(m==4||m==6||m==9||m==11)
{
month=30;
}
else if(m==2&&bissextile==1)
{
month=29;
}
else if(m==2&&bissextile==0)
{
month=28;
}
else
{
month=31;
}
printf("\nMonth %d :\n",m);
//呼叫先前打過的月曆程式
ouput(space,month);
//先計算出下個月該空幾格
space=(space+month)%7;
}
}
system("pause");
return 0;
}
int ouput(int space,int month)
{
int i,day=1;
printf(" SUN MON TUE WED THU FRI SAT\n");
for(i=1;i<=month+space;i++)
{
if(i<=space)
{
//每個日期的四格間距
printf(" ");
}
else
{
// (i 除以7的餘數)不等於 0
if((i%7)!=0)
{
printf("%4d",day);
}
else
{
printf("%4d\n",day);
}
day++;
}
}
printf("\n");
return 0;
}
2009年12月7日 星期一
餘數應用在印出日曆
//請於與期中考題比較,
//可發現 j 變數都不需要使用了,
//而改採%餘數來計算。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,space=2,month=31,day=1;
printf(" SUN MON TUE WED THU FRI SAT\n");
for(i=1;i<=month+space;i++)
{
if(i<=space)
{
printf(" ");
}
else
{
// (i 除以7的餘數)不等於 0
if((i%7)!=0)
{
printf("%4d",day);
}
else
{
printf("%4d\n",day);
}
day++;
}
}
return 0;
}
//可發現 j 變數都不需要使用了,
//而改採%餘數來計算。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,space=2,month=31,day=1;
printf(" SUN MON TUE WED THU FRI SAT\n");
for(i=1;i<=month+space;i++)
{
if(i<=space)
{
printf(" ");
}
else
{
// (i 除以7的餘數)不等於 0
if((i%7)!=0)
{
printf("%4d",day);
}
else
{
printf("%4d\n",day);
}
day++;
}
}
return 0;
}
餘數運算子:%
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x,x2;
printf("輸入數字:");
scanf("%d",&x);
x2=x%5;
printf("%d除5的餘數為:%d",x,x2);
return 0;
}
/*
結果:
輸入數字:11
11除5的餘數為:1
*/
補充 :
0%5 → 0
1%5 → 1
2%5 → 2
3%5 → 3
4%5 → 4
5%5 → 0
6%5 → 1
7%5 → 2
.............................
#include <stdlib.h>
int main()
{
int x,x2;
printf("輸入數字:");
scanf("%d",&x);
x2=x%5;
printf("%d除5的餘數為:%d",x,x2);
return 0;
}
/*
結果:
輸入數字:11
11除5的餘數為:1
*/
補充 :
0%5 → 0
1%5 → 1
2%5 → 2
3%5 → 3
4%5 → 4
5%5 → 0
6%5 → 1
7%5 → 2
.............................
轉換整數型態 atoi(word)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x;
char word[30]; //最多只能讀30個字母組成的單字
while(1)
{
printf("\nEnter any number:");
//scanf("%d/n",&x);
//為了因應使用者可能輸入帶有字元的變數,
//因此改用字串接收輸入,然後再利用 atoi 將字串轉為整數
scanf("%s",word);
// 呼叫 atoi()將字串轉為整數
x=atoi(word);
if(x<=50 && x>0)
{
printf("%d is >0 and <= 50",x);
}
else if(x<=100 && x>50)
{
printf("%d is >50 and <= 100",x);
}
else if(x>100)
{
printf("%d is >100",x);
}
else
{
printf("%d is <=0 or not integer",x);
}
}
return 0;
}
#include <stdlib.h>
int main()
{
int x;
char word[30]; //最多只能讀30個字母組成的單字
while(1)
{
printf("\nEnter any number:");
//scanf("%d/n",&x);
//為了因應使用者可能輸入帶有字元的變數,
//因此改用字串接收輸入,然後再利用 atoi 將字串轉為整數
scanf("%s",word);
// 呼叫 atoi()將字串轉為整數
x=atoi(word);
if(x<=50 && x>0)
{
printf("%d is >0 and <= 50",x);
}
else if(x<=100 && x>50)
{
printf("%d is >50 and <= 100",x);
}
else if(x>100)
{
printf("%d is >100",x);
}
else
{
printf("%d is <=0 or not integer",x);
}
}
return 0;
}
2009年11月30日 星期一
期中考解答
第1~4題:
#include <stdio.h>
#include <stdlib.h>
float cm2feet(float cm);
int age(int myage);
int main()
{
int myage;
float kg,n,cm,feet;
printf("張龜雅\n輸入公斤重:");
scanf("%f",&kg);
n=kg*9.81;
printf("我的體重%f牛頓\n",n);
printf("輸入公分:");
scanf("%f",&cm);
feet=cm2feet(cm);
printf("我的身高%f英呎\n",feet);
printf("輸入年齡:");
scanf("%d",&myage);
age(myage);
return 0;
}
float cm2feet(float cm)
{
float feet;
feet=cm*0.0328;
return feet;
}
int age(int myage)
{
int i,sum;
sum=myage;
for(i=1;i<=10;i++)
{
sum+=1;
printf("%d年後我%d歲\n",i,sum);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
void one(int x);
void two(int x);
int main()
{
int x,y,i;
printf("請輸入x:");
scanf("%d",&x);
printf("請輸入y:");
scanf("%d",&y);
one(x);
for(i=3;i<=y;i++)
{
two(x);
}
one(x);
return 0;
}
void one(int x)
{
int i;
for(i=1;i<=x;i++)
{
printf("囧");
}
printf("\n");
}
void two(int x)
{
int i;
for(i=1;i<=x/2;i++)
{
printf(" ");
}
printf("囧\n");
}
第6題:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,allday,day;
allday=31;
j=1;
day=1;
printf(" 日 一 二 三 四 五 六\n");
for(i=1;i<=allday+2;i++)
{
if(i<3)
{
printf(" ");
j++;
}
else
{
if(j<7)
{
printf("%3d",day);
j++;
}
else
{
printf("%3d\n",day);
j=1;
}
day++;
}
}
return 0;
}
第7~8題:
#include <stdio.h>
#include <stdlib.h>
#include <gd/gd.h>
#include <gd/gdfontg.h>
#include <gd/gdfontt.h>
#include <gd/gdfonts.h>
#include <gd/gdfontmb.h>
#include <gd/gdfontl.h>
#include <math.h>
void star(int x,int y, int radius);
int red,orange,yellow,green,blue,cyan,purple,black,white;
float degree = 3.14159/180.;
gdImagePtr im;
FILE *in;
int main(int argc, char *argv[])
{
int j,i;
float x,y;
//----------------------------------
char file[40];
char end[40] = ".htm";
//----------------------------------
im = im = gdImageCreate(500, 500);
green=gdImageColorAllocate(im,128,255,0);
red=gdImageColorAllocate(im,255,0,0);
white = gdImageColorAllocate(im, 255, 255, 255);
orange=gdImageColorAllocate(im,255,128,0);
yellow=gdImageColorAllocate(im,255,255,0);
blue=gdImageColorAllocate(im,0,0,255);
cyan=gdImageColorAllocate(im,0,255,255);
purple=gdImageColorAllocate(im,255,0,255);
black = gdImageColorAllocate(im, 0, 0, 0);
//----------------------------------------------------------
FILE *outfile;
printf ( "Please input a file name: " );
scanf ( "%s" , file );
strcat ( file , end );
outfile = fopen ( file , "wb" );
fprintf(outfile, "<img src=gdimage.png><br>\n");
for(i=1;i<=20;i++)
{
x=250+100*sin(i*18*degree);
y=250+100*cos(i*18*degree);
fprintf(outfile, "Coordinates %d (%f,%f)<br>\n",i,x,y);
star(x,y,30);
}
fclose(outfile);
//----------------------------------------------------------
in = fopen("gdimage.png", "wb");
if (!in) {
printf("cannot open < gdimage.png for writing\n");
return 1;
}
gdImagePng(im, in);
fclose(in);
gdImageDestroy(im);
return 0;
}
void star(int x,int y, int radius)
{
gdImageFilledEllipse(im, x, y, radius, radius, red);
}
設一甲期中考題目
預備動作
1.開啟你(妳)的CodeBlacks
2.在D槽建立好『以您的學號為名稱』之Project
如圖:
3.打開『main.c』,準備開始寫程式。
如圖:
4.上傳教學
馬上會需要上傳檔案交卷,上傳方法如下圖:
題目1 - 連鎖題
請撰寫一程式能『印出』自己學號名字如『19873106張龜雅』並換行,不限方法。
(送分題,限時3分鐘)
結果如:
19873106張龜雅
寫完請存檔,並將『整個Project』壓縮成Zip檔案傳上來。
如圖:
題目2 - 連鎖題
請接續程式,加入能夠『輸入』自己體重(公斤重)並轉換算成(牛頓)後印出的程式。
『1kg = 9.81N,體重可以亂掰』(限時5分鐘,10分)
結果如:
19873106張龜雅
輸入公斤重:50
我的體重490.500000牛頓
寫完請存檔,並將『整個Project』壓縮成Zip檔案傳上來。
如圖:
題目3 - 連鎖題
請接續程式,加入一『副程式』能夠輸入自己身高(公分)並轉換成(英呎)後印出的副程式。
『1cm = 0.0328feet,身高可以亂掰』(限時10分鐘,10分)
結果如:
19873106張龜雅
輸入公斤重:50
我的體重490.500000牛頓
輸入公分:150
我的身高4.920000英呎
寫完請存檔,並將『整個Project』壓縮成Zip檔案傳上來。
如圖:
題目4 - 連鎖題
請接續程式,並使用『for迴圈』,加入一『能夠輸入自己年齡』並印出『1~10年後我幾歲』的程式。
『年齡可以亂掰』(限時15分鐘,10分)
結果如:
19873106張龜雅
輸入公斤重:50
我的體重490.500000牛頓
輸入公分:150
我的身高4.920000英呎
輸入年齡:18
1年後我19歲
2年後我20歲
3年後我21歲
4年後我22歲
5年後我23歲
6年後我24歲
7年後我25歲
8年後我26歲
9年後我27歲
10年後我28歲
寫完請存檔,並將『整個Project』壓縮成Zip檔案傳上來。
如圖:
後面程式沒有限時囉可以慢慢寫,
5~6題非連鎖題不需要接續程式撰寫,
7~8題為連鎖題請互相參考範例程式。
題目5
請使用『副程式』加上『for迴圈』,讓使用者能『輸入X跟Y方向的個數』印出『工字型』。
(不限用什麼字排成圖形,不限時,20分)
結果如:
請輸入x:7
請輸入y:6
囧囧囧囧囧囧囧
囧
囧
囧
囧
囧囧囧囧囧囧囧
5~8題交卷只需要交上C程式檔案,檔名以學號命名一槓題號,
如:『19873106-5.c』、『19873106-6.c』、『19873106-7.c』、『19873106-8.c』
題目6
使用for迴圈,印出2009年12月份的月曆,日一二三四五六直接印出。
(不限時,20分)
結果如圖:
5~8題交卷只需要交上C程式檔案,檔名以學號命名一槓題號,
如:『19873106-5.c』、『19873106-6.c』、『19873106-7.c』、『19873106-8.c』
題目7 - 連鎖題
修改下面的範例程式,
輸出一張由『小黑點』環繞的『圓形』,並且將小黑點『換成別的顏色』,
環繞大小不拘,環繞的點數量『至少20點以上』,不限方法。
繪圖需要的檔案:bgd檔案
(不限時,20分)
//----------------範例程式開始----------------
#include <stdio.h>
#include <stdlib.h>
#include <gd/gd.h>
#include <gd/gdfontg.h>
#include <gd/gdfontt.h>
#include <gd/gdfonts.h>
#include <gd/gdfontmb.h>
#include <gd/gdfontl.h>
#include <math.h>
void star(int x,int y, int radius);
int red,orange,yellow,green,blue,cyan,purple,black,white;
float degree = 3.14159/180.;
gdImagePtr im;
FILE *in;
int main(int argc, char *argv[])
{
int j;
im = im = gdImageCreate(500, 500);
green=gdImageColorAllocate(im,128,255,0);
red=gdImageColorAllocate(im,255,0,0);
white = gdImageColorAllocate(im, 255, 255, 255);
orange=gdImageColorAllocate(im,255,128,0);
yellow=gdImageColorAllocate(im,255,255,0);
blue=gdImageColorAllocate(im,0,0,255);
cyan=gdImageColorAllocate(im,0,255,255);
purple=gdImageColorAllocate(im,255,0,255);
black = gdImageColorAllocate(im, 0, 0, 0);
star(100,100,30);
in = fopen("gdimage.png", "wb");
if (!in) {
printf("cannot open < gdimage.png for writing\n");
return 1;
}
gdImagePng(im, in);
fclose(in);
gdImageDestroy(im);
return 0;
}
void star(int x,int y, int radius)
{
gdImageFilledEllipse(im, x, y, radius, radius, black);
}
//----------------範例程式結束----------------
5~8題交卷只需要交上C程式檔案,檔名以學號命名一槓題號,
如:『19873106-5.c』、『19873106-6.c』、『19873106-7.c』、『19873106-8.c』
題目8 - 連鎖題
修改題目7的程式,並參考下面的程式,
將題目7中的圖片顯示在網頁上(*.htm),
並將小黑點的座標也輸出到網頁(*.htm)檔案,
請輸出至少20個點以上。
(不限時,20分)
說明:
『<br>』是Html語言的換行語法
『<img src=gdimage.png>』是Html語言的顯示圖片語法
//----------------範例程式開始----------------
#include<stdio.h>
#include<string.h>
int main()
{
char file[40];
char end[40] = ".htm";
FILE *outfile;
printf ( "Please input a file name: " );
scanf ( "%s" , file );
strcat ( file , end );
outfile = fopen ( file , "wb" );
fprintf(outfile, "Welcome to Facebook!!<br>\n");
fprintf(outfile, "There are restaurant city<br>\n");
fclose(outfile);
return 0;
}
//----------------範例程式結束----------------
Htm網頁檔案的範例內容如(範例為18個點,但請你輸出至少20個點以上):
<img src=gdimage.png><br>
Coordinates 1 (284.201996,343.969269)<br>
Coordinates 2 (314.278717,326.604492)<br>
Coordinates 3 (336.602509,300.000092)<br>
Coordinates 4 (348.480743,267.364929)<br>
Coordinates 5 (348.480804,232.635330)<br>
Coordinates 6 (336.602631,200.000153)<br>
Coordinates 7 (314.278931,173.395691)<br>
Coordinates 8 (284.202240,156.030823)<br>
Coordinates 9 (250.000275,150.000000)<br>
Coordinates 10 (215.798264,156.030640)<br>
Coordinates 11 (185.721497,173.395340)<br>
Coordinates 12 (163.397644,199.999695)<br>
Coordinates 13 (151.519287,232.634796)<br>
Coordinates 14 (151.519150,267.364410)<br>
Coordinates 15 (163.397232,299.999603)<br>
Coordinates 16 (185.720871,326.604126)<br>
Coordinates 17 (215.797501,343.969086)<br>
Coordinates 18 (249.999466,350.000000)<br>
範例圖片:
5~8題交卷只需要交上C程式檔案,檔名以學號命名一槓題號,
如:『19873106-5.c』、『19873106-6.c』、『19873106-7.c』、『19873106-8.c』
2009年11月16日 星期一
Code::Blocks環境下設定 GD library
Code::Blocks環境下設定 GD library:
1.先下載套件:http://www.libgd.org/releases/gd-latest-win32.zip
2.include內之檔案,放入MinGW/include目錄下的gd 子目錄.
3.lib內之檔案,放入MinGW/lib目錄下.
4.在 CodeBlocks->Project->Build options->Linker settings->在Link libraries中加入bgd(使其連結bgd.lib)
5.將bin目錄下的bgd.dll放於system32或直接與.c同一目錄
6.將sample.jpg置於.c同一目錄後,測試上述程式.
二十五顆小星星↓
ㄟ( ̄血 ̄ㄟ)))...
1.先下載套件:http://www.libgd.org/releases/gd-latest-win32.zip
2.include內之檔案,放入MinGW/include目錄下的gd 子目錄.
3.lib內之檔案,放入MinGW/lib目錄下.
4.在 CodeBlocks->Project->Build options->Linker settings->在Link libraries中加入bgd(使其連結bgd.lib)
5.將bin目錄下的bgd.dll放於system32或直接與.c同一目錄
6.將sample.jpg置於.c同一目錄後,測試上述程式.
二十五顆小星星↓
ㄟ( ̄血 ̄ㄟ)))...
2009年11月10日 星期二
switch case default
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
printf("KMOL勵志小語第幾條:");
scanf("%d",&i);
switch(i)
{
case 1:
printf("為人設想\n");
break;
case 2:
printf("相互尊重\n");
break;
case 3:
printf("領導不過是服務配合\n");
break;
case 4:
printf("充分準備\n");
break;
case 5:
printf("全力以赴\n");
break;
case 6:
printf("冷靜理性、忍住當下\n");
break;
case 7:
printf("能說、會做、敢承諾\n");
break;
case 8:
printf("創意無限、出奇不意\n");
break;
case 9:
printf("不怕挑戰、危機\n");
break;
default:
printf("永不放棄\n");
break;
}
//system語法要include這個標頭檔案stdlib.h
system("pause");
return 0;
}
#include <stdlib.h>
int main()
{
int i;
printf("KMOL勵志小語第幾條:");
scanf("%d",&i);
switch(i)
{
case 1:
printf("為人設想\n");
break;
case 2:
printf("相互尊重\n");
break;
case 3:
printf("領導不過是服務配合\n");
break;
case 4:
printf("充分準備\n");
break;
case 5:
printf("全力以赴\n");
break;
case 6:
printf("冷靜理性、忍住當下\n");
break;
case 7:
printf("能說、會做、敢承諾\n");
break;
case 8:
printf("創意無限、出奇不意\n");
break;
case 9:
printf("不怕挑戰、危機\n");
break;
default:
printf("永不放棄\n");
break;
}
//system語法要include這個標頭檔案stdlib.h
system("pause");
return 0;
}
2009年11月9日 星期一
迴圈While,Do While,Do While Break
#include <stdio.h>
int main()
{
printf("\n----------While----------\n");
int i=0;
while(i<5)
{
printf("%d",i);
i++;
}
printf("\n----------Do While----------\n");
i=0;
do
{
printf("%d",i);
i++;
}while(i<5);
printf("\n----------Do While Break----------\n");
i=0;
do
{
printf("%d",i);
if(i>=4)
break;
i++;
}while(1);
printf("\n");
}
int main()
{
printf("\n----------While----------\n");
int i=0;
while(i<5)
{
printf("%d",i);
i++;
}
printf("\n----------Do While----------\n");
i=0;
do
{
printf("%d",i);
i++;
}while(i<5);
printf("\n----------Do While Break----------\n");
i=0;
do
{
printf("%d",i);
if(i>=4)
break;
i++;
}while(1);
printf("\n");
}
以 C 建立 DXF 圖檔
以 C 建立 DXF 圖檔:
#include <stdio.h>
#include <stdlib.h>
void dxf_begin(void);
void dxf_end(void);
void dxf_circle(float x,float y,float r);
//outfile 為全域變數
FILE *outfile;
int main()
{
outfile = fopen("c:\\temp\\out.dxf","w");
dxf_begin();
dxf_circle(10.0,10.0,10.0);
dxf_end();
printf("successful\n");
fclose(outfile);
return 0;
}
void dxf_begin(void)
{
fprintf(outfile,"0\nSECTION\n2\nENTITIES\n");
}
void dxf_end(void)
{
fprintf(outfile,"0\nENDSEC\n0\nEOF");
}
void dxf_circle(float x,float y,float r)
{
fprintf(outfile,"0\nCIRCLE\n8\n0\n10\n%f\n20\n%f\n30\n0.0\n40\n%f\n",x,y,r);
}
C程式產生出來的dxf文件內容如下:
0
SECTION
2
ENTITIES
0
CIRCLE
8
0
10
10.000000
20
10.000000
30
0.0
40
10.000000
0
ENDSEC
0
EOF
各行說明:
0 後面接SECTION
SECTION 這是個開始
2 後面接ENTITIES
ENTITIES 實體段
0 開始
CIRCLE 化緣的指令...POLYLINE是畫線的指令...等
8 表明以下是一個新的實體
0 後面接畫圓的參數
10 後面接圓心的x座標
10.000000
20 後面接圓心的y座標
10.000000
30 後面接圓心的z座標
0.0
40 後面接圓的半徑
10.000000
0
ENDSEC 結束指令
0
EOF 關閉文件
PS:A.I.P.繪圖指令 - 2009、2010
#include <stdio.h>
#include <stdlib.h>
void dxf_begin(void);
void dxf_end(void);
void dxf_circle(float x,float y,float r);
//outfile 為全域變數
FILE *outfile;
int main()
{
outfile = fopen("c:\\temp\\out.dxf","w");
dxf_begin();
dxf_circle(10.0,10.0,10.0);
dxf_end();
printf("successful\n");
fclose(outfile);
return 0;
}
void dxf_begin(void)
{
fprintf(outfile,"0\nSECTION\n2\nENTITIES\n");
}
void dxf_end(void)
{
fprintf(outfile,"0\nENDSEC\n0\nEOF");
}
void dxf_circle(float x,float y,float r)
{
fprintf(outfile,"0\nCIRCLE\n8\n0\n10\n%f\n20\n%f\n30\n0.0\n40\n%f\n",x,y,r);
}
C程式產生出來的dxf文件內容如下:
0
SECTION
2
ENTITIES
0
CIRCLE
8
0
10
10.000000
20
10.000000
30
0.0
40
10.000000
0
ENDSEC
0
EOF
各行說明:
0 後面接SECTION
SECTION 這是個開始
2 後面接ENTITIES
ENTITIES 實體段
CIRCLE 化緣的指令...POLYLINE是畫線的指令...等
0 後面接畫圓的參數
10.000000
20 後面接圓心的y座標
30 後面接圓心的z座標
ENDSEC 結束指令
0
EOF 關閉文件
PS:A.I.P.繪圖指令 - 2009、2010
2009年10月20日 星期二
虛擬映像檔掛載軟體 - 酒精Alcohol 52%
免費版酒精下載:
Alcohol 52% Free Edition
使用方法:
1.安裝完畢後會在我的電腦出現一台虛擬光碟機的圖示
2.在那台光碟機上按右鍵選擇掛載映像檔(M) > 開啟舊檔(O)
3.去選擇映像檔(*.iso)如系上購買的教育版 Inventor、solidworks、solidedge...等即可
Alcohol 52% Free Edition
使用方法:
1.安裝完畢後會在我的電腦出現一台虛擬光碟機的圖示
2.在那台光碟機上按右鍵選擇掛載映像檔(M) > 開啟舊檔(O)
3.去選擇映像檔(*.iso)如系上購買的教育版 Inventor、solidworks、solidedge...等即可
2009年10月19日 星期一
CMSimple重置密碼
CMSimple重置密碼步驟如下
1.使用小作家開啟此檔案『mini_server_8\udrive\www\cms\cmsimple\config.php』
2.將檔案內的字串作修改↘
$cf['security']['password']="21232f297a57a5a743894a0e4a801fc3";
3.儲存檔案,密碼為『admin』。
(ps:21232f297a57a5a743894a0e4a801fc3為admin的md5碼)
1.使用小作家開啟此檔案『mini_server_8\udrive\www\cms\cmsimple\config.php』
2.將檔案內的字串作修改↘
$cf['security']['password']="21232f297a57a5a743894a0e4a801fc3";
3.儲存檔案,密碼為『admin』。
(ps:21232f297a57a5a743894a0e4a801fc3為admin的md5碼)
2009年10月16日 星期五
國立虎尾科技大學MSN群
這是我去年2008-6-7開設的,
國立虎尾科技大學 - MSN群,
裡面有蠻多各個科系的學長姐,
請加入下面帳號為MSN連絡人即可,
『group216741@msnzone.cn』
使用教學:http://goo.gl/aXHm
(PS:有時候/p要打兩次才會恢復對話。)
關鍵字:虎科M群 、NFU、虎尾、虎尾科技大學、MSN群、
國立虎尾科技大學 - MSN群,
裡面有蠻多各個科系的學長姐,
請加入下面帳號為MSN連絡人即可,
『group216741@msnzone.cn』
使用教學:http://goo.gl/aXHm
(PS:有時候/p要打兩次才會恢復對話。)
關鍵字:虎科M群 、NFU、虎尾、虎尾科技大學、MSN群、
2009年10月12日 星期一
研究題 - Kmol蚯蚓
問:
Kmol養了3隻蚯蚓,
從現在開始每個月把每隻蚯蚓切成x段,
養了一年後放生了88隻蚯蚓回虎科大校園,
請問Kmol最後還剩下幾隻蚯蚓?
(請使用迴圈求出次方,並將計算式寫在副程式,
並使用主程式呼叫副程式的方法求出數量。)
邏輯參考:
由題目得到蚯蚓總數的方程式為y=3x12-88
宣告
主程式
{
輸入:切了x段
呼叫副程式
印出:一年後剩下y隻
}
副程式
{
y=3x12-88
}
(若每隻蚯蚓都被切成了兩半,則還剩下12200隻蚯蚓)
解答:
#include <stdio.h>
int func(int x);
int main()
{
int n,sum;
printf("Kmol要切成幾段:");
scanf("%d",&n);
sum=func(n);
printf("剩下%d隻蚯蚓\n",sum);
return 0;
}
int func(int x)
{
int y,i,power=1;
for(i=0;i<12;i++)
{
power=power*x;
}
y=3*power-88;
return y;
}
Kmol養了3隻蚯蚓,
從現在開始每個月把每隻蚯蚓切成x段,
養了一年後放生了88隻蚯蚓回虎科大校園,
請問Kmol最後還剩下幾隻蚯蚓?
(請使用迴圈求出次方,並將計算式寫在副程式,
並使用主程式呼叫副程式的方法求出數量。)
邏輯參考:
由題目得到蚯蚓總數的方程式為y=3x12-88
宣告
主程式
{
輸入:切了x段
呼叫副程式
印出:一年後剩下y隻
}
副程式
{
y=3x12-88
}
(若每隻蚯蚓都被切成了兩半,則還剩下12200隻蚯蚓)
解答:
#include <stdio.h>
int func(int x);
int main()
{
int n,sum;
printf("Kmol要切成幾段:");
scanf("%d",&n);
sum=func(n);
printf("剩下%d隻蚯蚓\n",sum);
return 0;
}
int func(int x)
{
int y,i,power=1;
for(i=0;i<12;i++)
{
power=power*x;
}
y=3*power-88;
return y;
}
float是什麼?
//Float是用來宣告浮點數的時候用的,
//所謂浮點數就是小數、分數...等,非整數虛數的數字。
#include <stdio.h>
int main(void)
{
int n;
float sum;
n=10;
sum=n/3.;
/* 註解:
因為整數除以整數答案還是整數,
上面的3後面要加上一個點,
讓3這個整數變成浮點數(小數)。
%5d顯示『 10』總共五個格子,沒有數字的格子留空白。
%06.3f顯示『03.333』總共六個格子,
且小數點取到第3位,沒有數字的格子填上0 。
*/
printf("數字%5d除以三等於%06.3f\n",n,sum);
return 0;
}
/*
結果:
數字 10除以三等於03.333
*/
//所謂浮點數就是小數、分數...等,非整數虛數的數字。
#include <stdio.h>
int main(void)
{
int n;
float sum;
n=10;
sum=n/3.;
/* 註解:
因為整數除以整數答案還是整數,
上面的3後面要加上一個點,
讓3這個整數變成浮點數(小數)。
%5d顯示『 10』總共五個格子,沒有數字的格子留空白。
%06.3f顯示『03.333』總共六個格子,
且小數點取到第3位,沒有數字的格子填上0 。
*/
printf("數字%5d除以三等於%06.3f\n",n,sum);
return 0;
}
/*
結果:
數字 10除以三等於03.333
*/
2009年10月5日 星期一
if else 判斷式
//判斷式教學
#include <stdio.h>
int main(void)
{
int num;
printf("我是 (1)帥哥 (2)正妹 (3)兒童 (?)人妖:\n");
//scanf是輸入數值到num裡,記得要加&
scanf("%d",&num);
//括號內的num==1是判斷式
//判斷式符號有:== <= >= != < >
if(num==1)
{
printf("帥哥\n");
}
else if(num==2)
{
printf("正妹\n");
}
else if(num==3)
{
printf("兒童\n");
}
else
{
printf("人妖\n");
}
system("pause");
return 0;
}
#include <stdio.h>
int main(void)
{
int num;
printf("我是 (1)帥哥 (2)正妹 (3)兒童 (?)人妖:\n");
//scanf是輸入數值到num裡,記得要加&
scanf("%d",&num);
//括號內的num==1是判斷式
//判斷式符號有:== <= >= != < >
if(num==1)
{
printf("帥哥\n");
}
else if(num==2)
{
printf("正妹\n");
}
else if(num==3)
{
printf("兒童\n");
}
else
{
printf("人妖\n");
}
system("pause");
return 0;
}
用CodeBlack編譯C
範例檔案的路徑:『J:\homework\simple.c』
CodeBlock中工具的路徑:『J:\CodeBlocks\MinGW\bin\』
範例程式碼:
#include <stdio.h>
int main(void) /* a simple program */
{
int num; /* define a variable called num */
num = 1; /* assign a value to num */
printf("I am a simple "); /* use the printf() function */
printf("我是一個飯粒 \n"); /* use the printf() function */
printf("computer.");
printf("電腦.\n");
printf("My favorite number is %d because it is first.\n",num);
printf("我最愛的數字是 %d 因為他是第一個數字。\n",num);
getchar();
return 0;
}
如上圖:
1.開啟命令提示字元,可按『windows+R』執行『cmd』
2.輸入『J:』進到隨身碟
3.輸入『cd homework』進到放著『simple.c』檔案的目錄
4.輸入『path=J:\CodeBlocks\MinGW\bin\』把CodeBlock工具Path進來
5.輸入『gcc simple.c』編譯(Compile)範例程式
6.開啟編譯完成的『a.exe』完成如下圖↓
注意:程式碼最後面要Enter換行空一行,
當要進到『C:\』的時候可用『cd ..』回到上一層資料夾。
有問題請留言。
path=%path%;J:\CodeBlocks\MinGW\bin\
CodeBlock中工具的路徑:『J:\CodeBlocks\MinGW\bin\』
範例程式碼:
#include <stdio.h>
int main(void) /* a simple program */
{
int num; /* define a variable called num */
num = 1; /* assign a value to num */
printf("I am a simple "); /* use the printf() function */
printf("我是一個飯粒 \n"); /* use the printf() function */
printf("computer.");
printf("電腦.\n");
printf("My favorite number is %d because it is first.\n",num);
printf("我最愛的數字是 %d 因為他是第一個數字。\n",num);
getchar();
return 0;
}
如上圖:
1.開啟命令提示字元,可按『windows+R』執行『cmd』
2.輸入『J:』進到隨身碟
3.輸入『cd homework』進到放著『simple.c』檔案的目錄
4.輸入『path=J:\CodeBlocks\MinGW\bin\』把CodeBlock工具Path進來
5.輸入『gcc simple.c』編譯(Compile)範例程式
6.開啟編譯完成的『a.exe』完成如下圖↓
注意:程式碼最後面要Enter換行空一行,
當要進到『C:\』的時候可用『cd ..』回到上一層資料夾。
有問題請留言。
path=%path%;J:\CodeBlocks\MinGW\bin\
Linux是什麼?
要知道什麼是Linux之前,
我們要先了解平常使用的Windows是什麼,
Windows是視窗作業系統軟體,
作業系統稱為OS(Operation System),
那麼Linux其實就是一種OS,
常見的OS有Unix、Linux、Windows、MS-Dos,
Linux原本是非視窗型軟體,
是專門用來作程式開發的系統軟體,
但近年來許多好人將他們做成視窗型的系統軟體,
像是Ubuntu這套就是個有名的視窗型Linux。
另外AndLinux、CoLinux這類軟體,
是能夠在Windows上虛擬出Linux環境的軟體,
讓我們能夠在Windows上方便的使用Linux。
Wiki百科
我們要先了解平常使用的Windows是什麼,
Windows是視窗作業系統軟體,
作業系統稱為OS(Operation System),
那麼Linux其實就是一種OS,
常見的OS有Unix、Linux、Windows、MS-Dos,
Linux原本是非視窗型軟體,
是專門用來作程式開發的系統軟體,
但近年來許多好人將他們做成視窗型的系統軟體,
像是Ubuntu這套就是個有名的視窗型Linux。
另外AndLinux、CoLinux這類軟體,
是能夠在Windows上虛擬出Linux環境的軟體,
讓我們能夠在Windows上方便的使用Linux。
Wiki百科
我是一個飯粒
//第2章 - 25頁範例
#include <stdio.h>
int main(void) /* a simple program */
{
int num; /* define a variable called num */
num = 1; /* assign a value to num */
printf("I am a simple "); /* use the printf() function */
printf("我是一個飯粒 \n"); /* use the printf() function */
printf("computer.");
printf("電腦.\n");
printf("My favorite number is %d because it is first.\n",num);
printf("我最愛的數字是 %d 因為他是第一個數字。\n",num);
getchar();
return 0;
}
#include <stdio.h>
int main(void) /* a simple program */
{
int num; /* define a variable called num */
num = 1; /* assign a value to num */
printf("I am a simple "); /* use the printf() function */
printf("我是一個飯粒 \n"); /* use the printf() function */
printf("computer.");
printf("電腦.\n");
printf("My favorite number is %d because it is first.\n",num);
printf("我最愛的數字是 %d 因為他是第一個數字。\n",num);
getchar();
return 0;
}
2009年9月28日 星期一
印出01001
//
// sequential number print, file name:sq_num1.c
// 這個程式利用重覆迴圈與條件敘述句,練習循序數字列印的設計與應用
//
// 這是精簡化了老師顯示字幕的程式
// 給想挑戰的人看看
//
#include <stdio.h>
void print_zero(int width, int height, int line_num, int br_or_not);
void print_one(int width, int height, int line_num, int br_or_not);
int main()
{
int i, width, height;
width=5;
height=5;
for (i=1;i<=height;i++)
{
print_zero(width,height,i,0);
printf(" ");
print_one(width,height,i,0);
printf(" ");
print_zero(width,height,i,0);
printf(" ");
print_zero(width,height,i,0);
printf(" ");
print_one(width,height,i,1);
}
return 0;
}
void print_zero(int width, int height, int line_num, int br_or_not)
{
int i,j,k;
j=0;
// print first line
if (line_num == 1 || line_num == height)
{
// print the whole line
printf("o");
for (i=0;i < width-2;i++)
{
printf("-");
}
printf("o");
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
else
{
// repeat print position 1 and the last one
for (j=0;j < width;j++)
{
if(j==0 || j==width-1)
{
printf("|");
}
else
{
printf(" ");
}
}
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
}
void print_one(int width, int height, int line_num, int br_or_not)
{
int i, j, middle;
middle = width/2;
for (i=0;i<height;i++)
{
for (i=0;i<width;i++)
{
if (i==middle)
{
printf("|");
}
else
{
printf(" ");
}
}
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
}
// sequential number print, file name:sq_num1.c
// 這個程式利用重覆迴圈與條件敘述句,練習循序數字列印的設計與應用
//
// 這是精簡化了老師顯示字幕的程式
// 給想挑戰的人看看
//
#include <stdio.h>
void print_zero(int width, int height, int line_num, int br_or_not);
void print_one(int width, int height, int line_num, int br_or_not);
int main()
{
int i, width, height;
width=5;
height=5;
for (i=1;i<=height;i++)
{
print_zero(width,height,i,0);
printf(" ");
print_one(width,height,i,0);
printf(" ");
print_zero(width,height,i,0);
printf(" ");
print_zero(width,height,i,0);
printf(" ");
print_one(width,height,i,1);
}
return 0;
}
void print_zero(int width, int height, int line_num, int br_or_not)
{
int i,j,k;
j=0;
// print first line
if (line_num == 1 || line_num == height)
{
// print the whole line
printf("o");
for (i=0;i < width-2;i++)
{
printf("-");
}
printf("o");
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
else
{
// repeat print position 1 and the last one
for (j=0;j < width;j++)
{
if(j==0 || j==width-1)
{
printf("|");
}
else
{
printf(" ");
}
}
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
}
void print_one(int width, int height, int line_num, int br_or_not)
{
int i, j, middle;
middle = width/2;
for (i=0;i<height;i++)
{
for (i=0;i<width;i++)
{
if (i==middle)
{
printf("|");
}
else
{
printf(" ");
}
}
if (br_or_not == 1)
{
printf("\n");
}
else
{
// continue
}
}
}
輸入feet轉換成cm
#include <stdio.h>
int main(void)
{
float feet,cm;
printf("Key feet:");
//這行是輸入數字的語法,請點選框框打上數字。
scanf("%f",&feet);
//吋轉換成公分。
cm=feet*2.54;
printf("\ncm=%f",cm);
//這行是讓程式暫停的語法。
system("pause");
return 0;
}
//鍵入數字:
//Linux下的PAUSE
#include <stdio.h>
#define PAUSE print("Press any key to continue..."); fgetc(stdin);
printf("system(\*pause\*) for linux \n");
return 0;
}
int main(void)
{
float feet,cm;
printf("Key feet:");
//這行是輸入數字的語法,請點選框框打上數字。
scanf("%f",&feet);
//吋轉換成公分。
cm=feet*2.54;
printf("\ncm=%f",cm);
//這行是讓程式暫停的語法。
system("pause");
return 0;
}
//鍵入數字:
//Linux下的PAUSE
#include <stdio.h>
#define PAUSE print("Press any key to continue..."); fgetc(stdin);
int main(void)
{
PAUSE
printf("system(\*pause\*) for linux \n");
return 0;
}
副程式+框框程式
#include <stdio.h>
void all_star(int x);
void mix_star(int x);
int main() //主程式
{
int j,x=10,y=6;
//呼叫副程式直接打出副程式的名稱就可呼叫副程式
all_star(x);
for(j=0;j<y;j++)
{
mix_star(x);
}
all_star(x);
return 0;
}
//副程式格式:void 副程式名稱(輸入的變數參數(可以忽略不寫))
void all_star(int x) //副程式
{
int i;
//----------------------------第一行開始-------------------
//for(i=1;i<=9;i++) 這種寫法跟下面那種結果一樣
for(i=0;i<x;i++)
{
printf("星");
}
printf("\n"); //這裡\n為換行
//----------------------------第一行結束-------------------
}
void mix_star(int x) //副程式
{
int i;
//----------------------------第n行開始---------------------
printf("星");
for(i=0;i<(x-2);i++)
{
printf("空");
}
printf("星\n");
//----------------------------第n行結束---------------------
}
void all_star(int x);
void mix_star(int x);
int main() //主程式
{
int j,x=10,y=6;
//呼叫副程式直接打出副程式的名稱就可呼叫副程式
all_star(x);
for(j=0;j<y;j++)
{
mix_star(x);
}
all_star(x);
return 0;
}
//副程式格式:void 副程式名稱(輸入的變數參數(可以忽略不寫))
void all_star(int x) //副程式
{
int i;
//----------------------------第一行開始-------------------
//for(i=1;i<=9;i++) 這種寫法跟下面那種結果一樣
for(i=0;i<x;i++)
{
printf("星");
}
printf("\n"); //這裡\n為換行
//----------------------------第一行結束-------------------
}
void mix_star(int x) //副程式
{
int i;
//----------------------------第n行開始---------------------
printf("星");
for(i=0;i<(x-2);i++)
{
printf("空");
}
printf("星\n");
//----------------------------第n行結束---------------------
}
基本副程式
#include <stdio.h> //宣告副程式 void all_star(int num); void mix_star(int num); //主程式 int main() { //呼叫副程式直接打出副程式的名稱就可呼叫副程式 all_star(1);//呼叫副程式並送出值為1 mix_star(2);//呼叫副程式並送出值為2 return 0; } //副程式1 格式:void 副程式名稱(輸入的變數參數(可以忽略不寫)) void all_star(int num) { //%d為輸出整數,可以將num以整數方式顯示 printf("%d \n",num); } //副程式2 void mix_star(int num) { printf("%d \n",num); } /* 結果: 1 2 */
2009年9月21日 星期一
框框程式
// 這個兩撇除號斜線是註解,他並不會影響程式本身。
/*
上面跟下面這是範圍性的註解,一樣不會影響程式本身。
*/
//這兩行為前置處理程式
#include <stdio.h>
//這是主函式,名稱一定為 main 沒有輸入變數,輸出則訂為整數
int main()
{
//利用printf()函式進行字串的列印
int i,j;
//宣告變數名稱,名稱可以自行取名 如:sum,num,k等等
int x=12,y=8;
//for格式:for(i=起始值;i<=終點值;i=i+步階)
//(i++意思為i=i+1) 最後不需;號
//----------------------------第一行開始-------------------
//for(i=1;i<=9;i++) 這種寫法跟下面那種結果一樣
for(i=0;i<x;i++)
{
printf("星");
}
printf("\n"); //這裡\n為換行
//----------------------------第一行結束-------------------
for(j=0;j<(y-2);j++)
{
//----------------------------第n行開始---------------------
printf("星");
for(i=0;i<(x-2);i++)
{
printf("空");
}
printf("星\n");
//----------------------------第n行結束---------------------
}
//----------------------------第末行開始-------------------
for(i=0;i<x;i++)
{
printf("星");
}
printf("\n"); //這裡\n為換行
//----------------------------第末行結束------------------
//配合主函式的輸出資料型態,傳回一個整數0
return 0;
}
/*
最終結果:
星星星星星星星星星星星星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星星星星星星星星星星星星
*/
/*
上面跟下面這是範圍性的註解,一樣不會影響程式本身。
*/
//這兩行為前置處理程式
#include <stdio.h>
//這是主函式,名稱一定為 main 沒有輸入變數,輸出則訂為整數
int main()
{
//利用printf()函式進行字串的列印
int i,j;
//宣告變數名稱,名稱可以自行取名 如:sum,num,k等等
int x=12,y=8;
//for格式:for(i=起始值;i<=終點值;i=i+步階)
//(i++意思為i=i+1) 最後不需;號
//----------------------------第一行開始-------------------
//for(i=1;i<=9;i++) 這種寫法跟下面那種結果一樣
for(i=0;i<x;i++)
{
printf("星");
}
printf("\n"); //這裡\n為換行
//----------------------------第一行結束-------------------
for(j=0;j<(y-2);j++)
{
//----------------------------第n行開始---------------------
printf("星");
for(i=0;i<(x-2);i++)
{
printf("空");
}
printf("星\n");
//----------------------------第n行結束---------------------
}
//----------------------------第末行開始-------------------
for(i=0;i<x;i++)
{
printf("星");
}
printf("\n"); //這裡\n為換行
//----------------------------第末行結束------------------
//配合主函式的輸出資料型態,傳回一個整數0
return 0;
}
/*
最終結果:
星星星星星星星星星星星星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星空空空空空空空空空空星
星星星星星星星星星星星星
*/
訂閱:
文章 (Atom)