我將程式碼上傳後
他不斷顯示
Segmentation fault
有人可以幫幫我嗎,謝謝
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int digit(int);
int main()
{
long long int ans;
int temp;
int d;
int num;
int n;
int j;
char*str;
char*ptr;
char tempc;
str=(char*)malloc(sizeof(char)*1000001);
while(scanf("%d",&n)!=EOF)
{
scanf("%c",&tempc);
for(j=0;j<n;j++)
{
gets(str);
ptr=str;
if(*str=='-')
{
ptr++;
temp=-1*atoi(ptr);
d=digit(atoi(ptr));
}
else
{
temp=atoi(ptr);
d=digit(temp);
}
ans=temp;
ptr=ptr+d;
while(1)
{
if(*ptr>='0'&&*ptr<='9')
{
if(tempc=='+')
ans=ans+atoi(ptr);
else if(tempc=='-')
ans=ans-atoi(ptr);
else if(tempc=='*')
ans=ans*atoi(ptr);
else if(tempc=='/')
ans=ans/atoi(ptr);
num=atoi(ptr);
d=digit(num);
ptr=ptr+d;
}
else if(*ptr=='+'||*ptr=='-'||*ptr=='*'||*ptr=='/')
{
tempc=*ptr;
ptr++;
}
else if(*ptr==' ')
ptr++;
else if(*ptr=='\0')
break;
}
printf("%lld\n",ans);
}
}
free(str);
return 0;
}
int digit(int n)//找出數字有幾位數
{
int ans;
ans=(int)(log(n)/log(10));
return ans+1;
}