C語言練手專案--C 語言製作簡單計算器
一、需求
使用 C 語言做一個簡單的計算器,能執行加、減、乘、除操作
二、實現
1、思路
(1)標準輸入到str中
(2)將str中運算子和數值分別記錄在兩個陣列中
(3)然後逐次對每個運算子和相關的左值和右值進行運算
(4)將最後的結果輸出
2、程式碼
/*
* Author: sen
* Date: 2018-12-04
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SUM 10
#define MAX 100
typedef enum {
false, true
} bool;
float operate(float, float, char);
int main()
{
printf("************運算器************\n");
float value[SUM];
char operators[SUM];
char str[MAX];
int valueLen, operatorsLen;
valueLen = operatorsLen = 0;
if (fgets(str, MAX, stdin) != NULL) {
int length = strlen(str) - 1;
if (str[length - 1] != '=') {
printf("please input '=' at the end\n");
} else {
int start = 0;
for (int i = 0; i < length; i++) {
bool flag = false;
switch (str[i]) {
case '+':
flag = true;
operators[operatorsLen++] = '+';
break;
case '-':
flag = true;
operators[operatorsLen++] = '-';
break;
case '*':
flag = true;
operators[operatorsLen++] = '*';
break;
case '/':
flag = true;
operators[operatorsLen++] = '/';
break;
case '=':
flag = true;
break;
default:
break;
}
if (flag) {
char valueTmp[MAX];
for (int j = 0; j <= (i - start + 1); j++) {
valueTmp[j] = str[start++];
}
value[valueLen++] = atof(valueTmp);
start = i + 1;
}
flag = false;
}
}
} else {
printf("please restart!\n");
}
float leftValue = value[0];
int count = 0;
while (count < operatorsLen) {
leftValue = operate(leftValue, value[count + 1], operators[count]);
count++;
}
printf("The result is: %2.2f\n", leftValue);
return 0;
}
float operate(float num1, float num2, char symbol)
{
switch (symbol) {
case '+':
return num1 + num2;
break;
case '-':
return num1 - num2;
break;
case '*':
return num1 * num2;
break;
case '/':
return num1 / num2;
break;
default:
printf("Error,please restart!\n");
return 0;
break;
}
}
3、執行結果
三、參考連結
相關文章
- c語言作業C語言
- C語言簡單程式碼程式C語言
- c語言關於陣列的簡單運算C語言陣列
- C語言:迴文數計算C語言
- C語言作業2C語言
- C語言作業1。C語言
- C語言位運算C語言
- C語言-GCC的簡單介紹C語言GC
- C語言入門很簡單pdfC語言
- C 語言標頭檔案作用的簡單理解
- 初學計算機語言者(C語言,C++,java,pytion,C#)計算機C語言C++JavaC#
- C語言基礎-C簡介C語言
- C語言英文單詞C語言
- C語言編譯器手機版C語言編譯
- 使用zig語言製作簡單部落格網站(四)專案檔案整理網站
- C語言實驗作業C語言
- C語言C語言
- C語言練習——資料加密C語言加密
- 聊聊C語言/C++—程式和程式語言C語言C++
- C語言程式設計B作業04C語言程式設計
- C語言 使用Cryptdll計算檔案md5值C語言
- 簡易C語言文法分析C語言
- 《C程式設計語言》 練習3-5C程式程式設計
- 大一C語言程式設計練習題C語言程式設計
- Go 語言入門練手專案推薦Go
- 一個小而美的 C 語言專案
- 作為非計算機專業的學生,覺得 C 語言遠比其他語言易於上手,正常嗎?計算機
- C語言-檔案讀寫C語言
- C語言字串C語言字串
- C語言(一)C語言
- C語言: returnC語言
- C語言 typedefC語言
- C語言訓練之杭電OJC語言
- C語言如何計算陣列的長度C語言陣列
- C語言計算輸入字元的個數C語言字元
- C語言:計算輸入字元的個數C語言字元
- C語言與嵌入式C語言的區別C語言
- C語言學習方法,怎麼學習C語言?C語言