编译没报错,运行的时候就直接把输入环节给跳了,这是为啥啊?
小明给出一堆整数和运算要求(+、-、*、/、%),小丽要找出这些整数中的最大值和最小值,然后按照小明的要求算出最大数与最小数进行算术运算的结果。
输入: 用逗号分隔的整数序列,及其运算符和等号
输出: 最大数 op 最小数=结果
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,min,max,i1;
char ch[100][100]={'\0'};//定义字符二维数组,便于存入每个数字型的字符串
for(i=0;ch[i-1][0]!='\0';i++)//循环变量i控制一下行数变化,记得在前面定义一下
{
for(j=0;;j++)
{
ch[i][j]=getchar();//回显不回车 ,读入一个字符
if(ch[i][j]==',')
{
ch[i][j]='\0';
break;
}
else if(ch[i][j]=='\n')
{
ch[i][j-1]=ch[i][j]=0;
i1=i;//记录这个i,会用到的,用来找加减乘除符号的
break;
}
}
}//把所有的数字字符串读进来,储存在数组里
min=atoi(ch[0]);
max=atoi(ch[0]);//先读取第一个数字并存起来,待会要冲掉
for(i=1;i<i1-1;i++)//读数字,直到运算符号
{
min=(min<=atoi(ch[i]))?min:atoi(ch[i]);
max=(max>=atoi(ch[i]))?max:atoi(ch[i]);//存储最大值与最小值
}
switch(ch[i1-1][0])
{
case '+':printf("%d",max+min);break;
case '-':printf("%d",max-min);break;
case '*':printf("%d",max*min);break;
case '/':printf("%d",max/min);//可能需要改数据类型
}
}