从下面的函数termpro我想在另一个函数中使用coeff和power并尝试以下行但它会给我一个值而另一个为0
// Term是一个字符数组
int power,coef=termspro(term);
printf("POWER : %d\n",power);
printf("COEF : %d\n",coef);
int termspro(char term[20]){
int i,m=0,j=0,coeff=0,power=0;
char coef[10], powerr[10];
char *p;
memset(&coef[0],'\0',sizeof(coef));
memset(&powerr[0],'\0',sizeof(powerr));
int termLen=strlen(term);
for(i=0;i<termLen; i++){
if(term[i]=='-')
m++;
if((term[i]>='0'&&term[i]<='9')&&(term[i-1]!='^')&&(term[i-2]!='^')&&(term[i-3]!='^')&&(term[i-4]!='^')){
coef[j]=term[i];
j++;
}
}
//printf("this term's coef = %s\n",coef);
int coefLen=strlen(coef);
for(i=0;i<coefLen;i++){
coeff= (coeff*10)+((int)coef[i]-48);
}
//To get the sign :
if(m%2!=0)
coeff*=-1;
//THE COEF IS DAMN READYYYYYYY :D !!
printf("COEF : %d\n",coeff);
//To get the power :
p=strchr(term,'^');
char delm[2]="^";
if(p != NULL)
{
strcpy(powerr,p);
}
//printf("this term's power = %s\n",powerr);
int powerLen=strlen(powerr);
for(i=1;i<powerLen;i++){
power= (power*10)+((int)powerr[i]-48);
}
printf("POWER : %d\n",power);
return coeff,power;
}
答案 0 :(得分:0)
您不能从C中的函数返回多个值。替代方法是将变量的指针(可以保存所需的值)作为参数传递给函数。这样调用函数可以从被调用函数中获取值。
另一种选择是使返回类型成为struct的结构或指针,它可以包含多个值。