69,377
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>#include<stdio.h>
#include<math.h>
int main()
{
char a[80];
char ch; // 输入值
int i; //循环变量
int j=0;
int sum,y=0; //负整数总和
int ABC(char a[],int i,int j); //自己定义求负整数的函数
/*输入*/
while((ch=getchar())!='*')
{
a[j]=ch;
j++;
}
/*求负整数总和*/
for(i=0;i<j;i++)
{
if(a[i]=='-') sum=ABC(a,i,j);
y=sum+y;
}
printf("sum=%d\n",sum);
return 0;
}
/*自定义函数求和*/
int ABC(char a[],int i,int j)
{
int y=0; //返回值
int k,g=0; //循环变量
int h=0;
int flag;
int b[80];
/*自己检测传入的数据是不是正确*/
printf("i=%d,j=%d\n",i,j);
for(k=i;k<j;k++)
printf("a[%d]=%c\n",k,a[k]);
for(k=i+1;k<j;k++)
{
if((a[k+1]>='0')&&(a[k+1]<='9'))
{
b[h]=int(a[k+1])-45; //-45字符转化为整数
printf("h=%d,b[%d]=%d\n",h,h,b[h]);
h++;
printf("h=%d\n",h);
}
else {flag=0;break;};
printf("g=%d\n",g); //用来检测下循环了几次,结果发现只有一次,就出现问题了
g++;
}
for(k=h,g=0;k>=0;g++,k--)
y=y + b[g] * (int)pow(10.0,k);
return (-y);
}