ตัวอย่างการเขียนโค้ดภาษาซี เพื่อคำนวณหาค่าน้ำประปาที่จะต้องจ่าย โดยโจทย์มีดังนี้
เงื่อนไขที่ 1 ใช้น้ำไม่เกิน 10 หน่วย ไม่เสียค่าน้ำประปา
เงื่อนไขที่ 2 ใช้น้ำไม่เกิน 20 หน่วย คิดหน่วยละ 5 บาท โดยคิดรวมทั้ง 10 หน่วยแรกด้วย
เงื่อนไขที่ 3 ใช้น้ำที่เกินจาก 20 หน่วยแรก แต่ไม่เกิน 40 หน่วย คิดหน่วยละ 7 บาท
เงื่อนไขที่ 4 ใช้น้ำที่เกินจาก 40 หน่วยแรก แต่ไม่เกิน 100 หน่วย คิดหน่วยละ 10 บาท
เงื่อนไขที่ 5 ใช้น้ำที่เกินจาก 100 หน่วยขึ้นไปคิดหน่วยละ 15 บาทโดยให้รับข้อมูลเป็นค่าจำนวนเต็มของหน่วยน้ำประปาที่ใช้ไป และแสดงผลลัพธ์เป็นค่าน้ำประปาที่ต้องจ่าย
หมายเหตุ โจทย์ปัญหาภาษาซีนี้ผมเอามาจาก pantip.com [http://pantip.com/topic/32976990]
ตัวอย่าง Flowchart
ตัวอย่างโค้ด
/***************************************************
* Author : CS Developers
* Author URI: https://www.comscidev.com
* Facebook : https://www.facebook.com/CSDevelopers
***************************************************/
#include<stdio.h>
int main(){
int unit, unit_use, pay=0;
printf("\nEnter water unit : ");
scanf("%d", &unit);
if(unit > 100){
unit_use = unit - 100;
pay += unit_use * 15;
unit -= unit_use;
}
if(unit > 40 && unit <= 100){
unit_use = unit - 40;
pay += unit_use * 10;
unit -= unit_use;
}
if(unit > 20 && unit <= 40){
unit_use = unit - 20;
pay += unit_use * 7;
unit -= unit_use;
}
if(unit > 10){
pay += unit * 5;
}
printf("\nPay water is %d Bath\n\n", pay);
return 0;
}
อธิบายเพิ่มเติม
1. ตัวแปร unit ใช้สำหรับเก็บค่าจำนวนหน่วยที่ใช้ทั้งหมด(รับค่าที่ป้อนครั้งแรก) และลดค่าลงเรื่อยๆ ตามเงื่อนไข
2. ตัวแปร unit_use ใช้สำหรับเก็บค่าจำนวนหน่วยที่ใช้ในเงื่อนไขนั้น ๆ
3. ตัวแปร pay ใช้สำหรับเก็บค่าน้ำที่คำนวนได้
4. ให้ทำการวิเคราะห์หาลำดับความสำคัญในการกำหนดเงื่อนไขว่าเงื่อนไขไหนควรอยู่ก่อนอยู่หลัง เพื่อจะได้เขียนโค้ดได้ง่ายขึ้นครับ