C语言中运用while实现四则运算
时间: 2024-05-08 17:15:24 浏览: 13
这里给出一个简单的例子,实现两个整数的加法:
```
#include <stdio.h>
int main()
{
int a, b;
printf("请输入两个整数:\n");
scanf("%d%d", &a, &b);
int sum = 0;
while (b != 0) {
sum = a ^ b; // 不进位的加法
b = (a & b) << 1; // 进位
a = sum;
}
printf("它们的和是:%d\n", a);
return 0;
}
```
其中,`sum = a ^ b` 表示不进位的加法,`b = (a & b) << 1` 表示进位,每次循环更新 `a` 和 `b` 直到 `b` 为 0,此时 `a` 就是两个数的和。
其他运算可以根据类似的思路实现。
相关问题
c语言实现应用栈实现四则运算
可以使用栈来实现四则运算表达式的计算。具体步骤如下:
1. 定义一个栈结构,用于存放运算符和数字。
2. 读入表达式字符串,逐个字符进行处理。
3. 遇到数字字符时,将其转换为数字并压入栈中。
4. 遇到运算符时,从栈中弹出两个数字进行计算,并将结果压入栈中。
5. 最后栈中只剩下一个数字,即为表达式的计算结果。
下面是使用C语言实现的应用栈实现四则运算的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 50
typedef struct {
int top;
int data[MAX_SIZE];
} Stack;
void push(Stack *stack, int value) {
if (stack->top == MAX_SIZE) {
printf("Error: stack overflow\n");
exit(1);
}
stack->data[++stack->top] = value;
}
int pop(Stack *stack) {
if (stack->top == -1) {
printf("Error: stack underflow\n");
exit(1);
}
return stack->data[stack->top--];
}
int calculate(char *expr) {
Stack stack = {-1};
char *p = expr;
while (*p != '\0') {
if (*p >= '0' && *p <= '9') {
int num = 0;
while (*p >= '0' && *p <= '9') {
num = num * 10 + (*p - '0');
p++;
}
push(&stack, num);
} else if (*p == '+' || *p == '-' || *p == '*' || *p == '/') {
int b = pop(&stack);
int a = pop(&stack);
switch (*p) {
case '+':
push(&stack, a + b);
break;
case '-':
push(&stack, a - b);
break;
case '*':
push(&stack, a * b);
break;
case '/':
if (b == 0) {
printf("Error: divide by zero\n");
exit(1);
}
push(&stack, a / b);
break;
}
p++;
} else {
printf("Error: invalid character '%c'\n", *p);
exit(1);
}
}
if (stack.top != 0) {
printf("Error: invalid expression\n");
exit(1);
}
return pop(&stack);
}
int main() {
char expr[100];
printf("请输入四则运算表达式:");
scanf("%s", expr);
int result = calculate(expr);
printf("计算结果:%d\n", result);
return 0;
}
```
在程序中,我们定义了一个栈结构 Stack,包含一个指向栈顶的 top 指针和一个数组 data 用于存放栈中的元素。push 函数实现元素的入栈,pop 函数实现元素的出栈。calculate 函数接收一个字符串类型的表达式,逐个字符进行处理,并使用栈来计算表达式的值。
使用示例:
```
请输入四则运算表达式:3+4*2/(1-5)^2
计算结果:3
```
c语言实现四则运算代码
C语言可以实现四则运算代码,可以通过定义变量、运算符和控制语句来实现。下面是一个简单的例子:
```
#include <stdio.h>
int main() {
int a, b, result;
char operator;
printf("请输入一个表达式(例如:1+2):");
scanf("%d%c%d", &a, &operator, &b);
switch(operator) {
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
case '*':
result = a * b;
break;
case '/':
result = a / b;
break;
default:
printf("输入的运算符不正确!");
return 1;
}
printf("运算结果:%d %c %d = %d", a, operator, b, result);
return 0;
}
```
这个例子中,我们首先定义了三个变量:a、b和result,分别用来存储输入的两个操作数和运算结果。然后通过scanf函数获取用户输入的表达式,并将其拆分成操作数和运算符。接着使用switch语句根据运算符进行相应的计算,并将结果存储在result变量中。最后使用printf函数输出运算结果。