首先说下存在的问题:
1.define容易造成误会,因为不符合一般的编程习惯,false 0, true 1
2.scanf放在你的那个地方是达不到你想要的结果,只输入了一次。建议改成getchar这种形式,具体如图二
3.为了达到通用化,建议定义两个你需要处理的字符组合,他们相互配对,这样方便以后添加而不用改下面的代码
4.同时为了配合3这个更改添加一个判断输入字符是不是在字符组的函数,方便使用。
详细代码如图,因为没有Stack我没有办法验证,如果有错你看着改改,这种思路是没有错的。
图一
图二
#include<stdio.h>#define N 10
int fun(int a[N])
int main()
{
int a[N],k
printf("请输入10个整数:")
for(k=0k<Nk++) scanf("%d",&a[k])
printf("排列后的数组:\n")
fun(a)
for(k=0k<Nk++) printf("%4d",a[k])
printf("\n")
return 0
}
int fun(int a[N])
{
int i,j,m,t
for(m=0m<Nm++){
i=m
for(j=i+1j<Nj++){
if(a[j]<a[i]) i=j
t=a[m]
a[m]=a[i]
a[i]=t
}
}
return a[N]
}
把fun(a)拿出来
fun函数里的内容就是排序 排序完了在输出就可以了
“+”是个字符串,m是字符型变量,不能与字符串进行比较,把“+”改为'+',后面的一样;另外,在 printf("请输入加、减、乘、除或者求余符号\n")语句之前加一个getchar(),以吃掉输入的回车符。