以此类推
if中可以赋值给head的理由很简单.
因为 if(PTScount(head) == 0)
if判断的就是看它是不是 第一个元素.
如果是第一个元素,自然直接将ins赋值给head.
head所代表的就是第一个元素.
如果到了else这里,那么很明显就不是第一个元素了.
那这个时候肯定就不可以直接复制给head了呀,因为head可是代表第一个元素呀.
所以,你这是肯定改不了的.
写了个,你试试.
#include?stdio.h
{
{'','','','','','',''},
{'','','','','','=','$'},
{'','','','','$','',''},
{'','','','','','$','='},
};
int?get_cal_index(char?c)
switch(c)
case?'+':?return?0;
case?'-':?return?1;
}
return?-1;
int?main(void)
char?*np,*ip,*sp,*cp;
int?nci,?oci;
gets(infix);
infix[strlen(infix)?+1]?=?'\0';
infix[strlen(infix)]?=?'#';
cal[0]?=?'#';
ip?=?infix;
sp?=?suffix;
cp?=?cal;
while(*ip)
if(is_digit(*ip))
int?has_dot?=?0;
while(is_digit(*ip)?||?*ip?==?'.')
*sp++?=?*ip;
*sp++?=?'?';
if(*ip?==?'.')
if(has_dot)
printf("错误的计算数");
exit(-1);
has_dot?=?1;
ip++;
ip--;
else
nci?=?get_cal_index(*ip);
if(nci?==?-1)
printf("错误的运算符");
oci?=?get_cal_index(*cp);
while(pri[oci][nci]?==?'')
*sp++?=?*cp--;
if(pri[oci][nci]?==?'')
*++cp?=?*ip;
else?if(pri[oci][nci]?==?'=')
if(*ip?==?')')
cp--;
else?if(*ip?==?'#')
break;
else?if(pri[oci][nci]?==?'$')
printf("错误的表达式");
*sp?=?'\0';
puts(suffix);
return?0;
以上就是土嘎嘎小编为大家整理的c语言isdot函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!