//
// 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
}
}
}
2009年9月28日 星期一
輸入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)