對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;
}
訂閱:
文章 (Atom)