觉得楼上的程序有点小问题:
#include<stdio.h>
void
main()
{
char
ch[]="123456789";
float i=0,m,s=1;
//如果想把ch[]转换成数输出,int型范围不够
for(m=0;
ch[i]>='0'&&ch[i]<='9';i++)
//用这一个&&足以起到限制条件,无需判断是否为‘\0';
{
if(ch[i]=='+'||ch[i]=='-')
s=(ch[i++]=='+')?1:-1; //发现这个if条件语句没有作用,可以删除。
m=m*10+ch[i]-'0';
printf("%.0f\n",s*m);
//即使是换为float型,也因为精度问题,使最后一组123456789无法正确输出。
}
}