C语言加减乘除

落花浮王杯 提交于 2020-03-05 18:21:18

#define _CRT_SECURE_NO_WARNINGS
#include <cstdlib>
#include <stdio.h>
#include <string.h>

int main()
{
    float a, b, c;
    char str[100];  //输入的字符串
    char preStr[100];//运算符前的字符串
    char endStr[100];//运算符后面的字符串
    //scanf("%f%c%f", &a, &x, &b);
    printf("请输入字符串:");
    scanf("%s", str);  /*输入参数是已经定义好的“字符数组名”, 不用加&, 因为在C语言中数组名就代表该数组的起始地址*/
    int index = -1;
    for (int i = 0; i < strlen(str); i++)//确定运算符的位置
    {
        switch (str[i])
        {
        case'+':index = i; break;
        case'-':index = i; break;
        case'*':index = i; break;
        case'/':index = i; break;
        }
        
        if (index != -1)
        {
            break;
        }
    }

    for (int i = 0; i < index; i++)//遍历运算符前面的字符串
    {
        preStr[i] = str[i];
    }
    preStr[index] = '\0';


    for (int i = index + 1; i < strlen(str); i++)//遍历运算符后面的字符串
    {
        endStr[i- index-1] = str[i];
    }
    endStr[strlen(str)-index - 1] = '\0';

    //字符串转数字
    a = atoi(preStr);
    b = atoi(endStr);
    switch (str[index])//开始运算
    {
    case'+':c = a + b; break;
    case'-':c = a - b; break;
    case'*':c = a * b; break;
    case'/':c = a / b; break;
    }
    printf("输出结果:%f\n", c);
    
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!