運行結果正確,沒有發生陣列下標越界,但老是錯誤
uj5u.com熱心網友回復:
貼代碼和題目出來uj5u.com熱心網友回復:
有可能是陣列太大造成的,如:int a[10000000000];
uj5u.com熱心網友回復:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char nums[60];
char index[30];
int j=0;//j數字長度
int k=0;//整型陣列計數器
int temp;
int answers[30];//最終答案
int m=0;
gets(nums);
for(int i=0;i<59 && nums[i] != '\0';i++,j++)
{
m=0;
if(nums[i] == ' ')
{
for(;m<j;m++)
{
index[m] = nums[i-j+m];
}
index[m] ='\0';
temp = atoi(index);
answers[k] = temp;
k++;//
j=-1;
}//if
if(nums[i+1] == '\0')
{
i=i+1;
for(;m<=j;m++)
{
index[m] = nums[i-j-1+m];
}
index[m] ='\0';
temp = atoi(index);
answers[k] = temp;
k++;
break;
}//if
}//for
for(int s=0;s<k ;s+=2)
{
if(answers[s+1]== 0)
answers[s]=answers[s+1]=0;
else
{
answers[s] *= answers[s+1];
answers[s+1]--;
}
}//for
for(int s=0;s<k;s += 2)
{
if(answers[s+1]!= 0 && answers[s]!= 0)
{
if(s+1 == k)
printf("%d %d",answers[s],answers[s+1]);
else
printf("%d %d ",answers[s],answers[s+1]);
}
else
{
if(answers[s+1]== 0) {printf("%d %d",answers[s],answers[s+1]);break;}
}
}//for
return 0;
}
uj5u.com熱心網友回復:
題目和代碼在三樓
uj5u.com熱心網友回復:
題目和代碼見三樓
uj5u.com熱心網友回復:
仔細看輸入描述系數和指數都是絕對值不超過1000的, 這個什么意思啊?
就是說, 這個多項式可能有1001項, 指數從1000到0都有的情況
系數呢絕對值不超過1000,加上符號位的話系數最多占五位
所以運算式可能是-1000 1000 -1000 999 -1000 998 ..... -1000 0 0 0
你自己算算這個字串有多長, 能不越界嗎?
你的numbers,index,answer陣列開的太小啦
uj5u.com熱心網友回復:
謝謝解答,問題已解決
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/117279.html
標籤:C語言
上一篇:哪位大佬能告訴我這個哪里錯了嗎?
下一篇:gets函式
