iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
1
自我挑戰組

從0開始,一起學C語言吧!系列 第 11

從0開始,一起學C語言吧!(Day11)

  • 分享至 

  • xImage
  •  

Day11- 綜合練習

那我們上一篇和上上一篇教完了if..else和switch的用法
以下是綜合練習
範例1: 季節判斷

#include<stdio.h>
#include<stdlib.h>
int main (void){
	int month;
	printf("請輸入月份:");
	scanf("%d",&month);
	if(month>=1 && month<=3)
	   printf("%d 月是春天\n",month);
	else if(month<=6)
	   printf("%d月是夏天\n",month);
	else if(month<=9)
	   printf("%d月是秋天\n",month);
	else if(month<=12)
	   printf("%d月是冬天\n",month);
	else
	   printf("不合法的月份\n");
    system("pause");
	return  0;
}

印出:
https://ithelp.ithome.com.tw/upload/images/20190910/20119958mE5JjHn8Ii.png

範例2: 解元二次方程式

#include<iostream>
#include<math.h>
using namespace std;
int main(){
	double a,b,c;
	cout<<"ax^2+bx+c=0\n請依序輸入a,b,c\n";
	cin>>a>>b>>c;
	cout<<"答案是:";
	if(pow(b, 2)-4*a*c>0)
	   cout<< ((-1) * b + sqrt (pow(b, 2)-4 * a * c)) / 2 / a <<" " <<(-b-sqrt(pow(b, 2)-4 * a *c))/ 2 / a <<endl;
	else if(pow(b, 2)-4 * a * c==0)
	   cout<< (-1) * b / 2 /a << endl;
	else
	   cout<<"無解\n";
	system("pause");
	return 0;
}

印出:
https://ithelp.ithome.com.tw/upload/images/20190910/20119958jTGZFJcb4q.png
解釋:第六行符號^表示某變數的次方

範例3:電力公司計算方式

#include<stdio.h>
#include<stdlib.h>
/*家庭用電*/ 
#define TypeA1 2 /*家庭用電100度以下,每度2元*/ 
#define TypeA2 3 /*家庭用電101度以上,300度以下,每度3元*/ 
#define TypeA3 4 /*家庭用電301度以上,每度4元*/ 
/*工業用電*/ 
#define TypeB1 200 /*工業用電契約馬力,每馬力200元*/ 
#define TypeB2 2   /*工業用電每度2元*/ 
/*營業用電*/ 
#define TypeC1 5 /*營業用電300度以下,每度5元*/ 
#define TypeC2 6 /*營業用電301度以上,每度6元*/ 

int main(void){
	int T;       /*用電類別*/ 
	float Deg;   /*用電度數*/ 
	float C;     /*工業用電契約馬力*/ 
	float Fee;   /*電費*/ 
	
	printf("1.家庭用電");
	printf("2.工業用電");
	printf("3.營業用電");
	printf("請輸入用電類別(1-3)");
	scanf("%d",&T);
	if(T>=1 && T<=3){
		
		printf("用電度數=");
		scanf("%f",&Deg);
		switch(T){
			case 1:
				if(Deg<=100)
				   Fee=Deg*TypeA1;
				else if(Deg<=300)
				   Fee=(Deg-100)*TypeA2 + 100*TypeA1;
				else
				   Fee=(Deg-300)*TypeA3 + 200*TypeA2+100*TypeA1;
			    break;
			case 2:
				printf("契約馬力=");
				scanf("%f",&C);
				Fee=C*TypeB1+Deg*TypeB2;
				break;
			case 3:
				if(Deg<=300)
				   Fee=Deg*TypeC1;
				else
				   Fee=(Deg-300)*TypeC2+300*TypeC1;
			break;   
    	}
        printf("電費共為%f",Fee);
        printf("/n"); 
	}else{
		printf("類別錯誤!!");
		printf("/n");
	}
	system("pause");
	return 0;
} 

印出:
https://ithelp.ithome.com.tw/upload/images/20190910/20119958OcCULLFZxQ.png

小試身手1: 多段式百貨公司打折
真真百貨周年慶的打到骨折活動,當顧客消費滿2000元時打7折,滿5000元時打6折,滿10000元時打55折,請幫公司寫出一個收銀檯程式
印出:
https://ithelp.ithome.com.tw/upload/images/20190910/20119958E1KP6jj5io.png

小試身手2:購物計算
小天今天帶500元去超市買了蘋果、梨子、葡萄等個數不等的商品,請問他買完剩下或是差多少錢?
印出:
https://ithelp.ithome.com.tw/upload/images/20190910/201199581T0JiMOFO5.png

那程式碼會在下一篇給大家
謝謝大家今天的閱讀!!


上一篇
從0開始,一起學C語言吧!(Day10)
下一篇
從0開始,一起學C語言吧!(Day12)
系列文
從0開始,一起學C語言吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
alantsui
iT邦新手 5 級 ‧ 2019-09-12 13:24:38

C++和C代碼混合在一起,有點奇怪,並且你可以在cout之外初始值,它看起來更整潔,例如

#include<stdio.h>
#include<math.h>

int main(){
	double a,b,c;
    printf("ax^2+bx+c=0\n請依序輸入a,b,c\n");
    scanf("%lf %lf %lf", &a, &b, &c);
    
    double Delta = pow(b, 2)-4*a*c;
    
    printf("答案是:");
    
	if( Delta > 0 ){
	   double root1 = ((-1) * b + sqrt (pow(b, 2)-4 * a * c)) / 2 / a;
	   double root2 = (-b-sqrt(pow(b, 2)-4 * a *c))/ 2 / a;
	   printf("%0.2lf %0.2lf\n", root1, root2); 
	} else if (Delta==0){
	    double root = (-1) * b / 2 /a;
	    printf("%.2lf", root);
	} else printf("無解\n");
	    

	//system("pause");
	return 0;
}
kting iT邦新手 5 級 ‧ 2019-09-12 21:10:09 檢舉

太感謝你的程式碼了,謝謝!!

我要留言

立即登入留言