判断一下字符是否是数字
if(a[i]>='0' && a[i] <='9')
i也没有初始化就是用了
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <limits.h>
int main()
{
char a[100], tmp[100];
int result;
int max = INT_MIN, min = INT_MAX, k, i = 0, start = 0, len = 0;
gets(a);
while (a[i] != '=' || i < 100)
{
if (a[i] == ',')
{
len = i - start;
memcpy(tmp, a + start, len);
tmp[len] = '\0';
k = atoi(tmp);
if (max < k)
max = k;
if (min > k)
min = k;
start = i + 1;
}
if (a[i] == '+' || a[i] == '-' || a[i] == '*' || a[i] == '/')
{
switch (a[i])
{
case '+':
result = max + min;
break;
case '-':
result = max - min;
break;
case '*':
result = max * min;
break;
case '/':
result = max / min;
break;
}
printf("%d%c%d=%d\n", max, a[i], min, result);
break;
}
i++;
}
return 0;
}
while循环条件应该 && a[i] != '+'&& a[i] != '-'&& a[i] != ''&& a[i] != ''
加上后 while循环退出后 a[i]就是运算符号
然后 switch(a[i]){
case '+': 计算 break;
case '-: 计算 break;
case '': 计算 break;
case '/': 计算 break;
}