-
提問者程式的主要問題有:(1)const int n=1000不夠,應該定義為1001,留乙個位元組把結束字元'0';(2)多個連續5s無濾波器; (3) 輸出的最後一位數字後不能有空格。
對 ac 進行了以下修改:
#include
#include
#include
#include
using namespace std;
int main() //void main()
const int n=1001;1000是不夠的,不能是交流電;
char str[n];
while(cin>>str)
int d[1000];125 是不夠的,最多可以有 500 位 int d[125];
int n=0,s=0,temp;
int i;
for(i=0;str[i]=='5';i++) 從頭開始過濾 5
s=i;for(;i=t;u--)
if(d[u]temp=d[u-1];
d[u-1]=d[u];
d[u]=temp;
for(int z=0;zcout
-
這是我的 ac's **,你可以參考一下。
#include
#include
int main()
char s[1001],c,p[1001];
double a[1001],t;
int i,j,k,l,m,d,l1;
while(gets(s))
l=strlen(s);j=0;d=0;l1=l;
s[l1]='\0';a[0]=0;t=0;
for(i=1;i<=l1;i++)
if(s[i]=='5'&&s[i-1]=='5')for(k=i;k<=l1;k++)
s[k-1]=s[k];
l1--;i--;
for(i=0;ia[i+1])
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
for(i=0;i<=d;i++)
if(i!=d)
else return 0;
-
有乙個庫函式可以恰到好處地解決這個問題。
strtok();
房東可以參考。
on**:包括
#include
int cmp(const void *p1,const void *p2)
return *(int *)p1-*(int *)p2;
using namespace std;
int a[100];
int main()
char in[1000],*ch[100];
int i=0,t=0;
while(cin>>in)
ch[0]=strtok(in,"5");
sscanf(ch[0],"%d",&a[t++]while(ch[i]!=null)
ch[++i]=strtok(null,"5");
qsort(a,t,sizeof(int),cmp);
for(i=0;icoutreturn 0;
-
可以通過傳遞陣列的元素數來解決,即使用兩個引數,乙個是陣列的名稱,另乙個是陣列的長度。
執行時錯誤是指程式在執行過程中崩潰。
例如:除以零。
陣列越界:int a[3]; a[10000000]=10
指標越界:int*p; p=(int *)malloc(5 * sizeof(int));p+1000000)=10
使用已經釋放的空間:int*p; p=(int *)malloc(5 * sizeof(int));free(p); p=10
陣列開啟的容量太大,超出了堆疊的範圍,導致堆疊溢位:int a[100000000]。
陣列訪問超出範圍:
使用陣列的下標獲取陣列中指定索引的元素。 這稱為對陣列的訪問。
如果乙個陣列被定義為具有 n 個元素,那麼訪問這 n 個元素(下標為 0 到 n-one 的元素)是合法的,如果訪問這 n 個元素以外的元素是非法的,則稱為“越界”。 陣列占用連續的記憶體空間。 然後,我們可以通過指定陣列下標來訪問此記憶體中的不同位置。
因此,當下標太大時,存取記憶體不再是陣列“部分”中的記憶體。 您將訪問其他變數的記憶體。
解決方法:由於陣列的元素數預設沒有作為引數的內容傳遞到呼叫函式中,所以會帶來陣列訪問越界的問題,可以通過傳遞陣列的元素數來解決,即用兩個引數, 乙個是陣列的名稱,另乙個是陣列的長度。
示例:include void putarray(int *p, int length) { 這裡確定條目引數 p 和 length ....... } 的有效性for(int i=0;i
這不是乙個好問題。
這樣,可以提出 3 和 6 與 1、2、4、5 等形成 1 到 6 的序列,它們的總和值為 n(n+1) 2 >>>More
超時? 然後尋找一種模式。
以 0 結尾的數字無論乘以多少次仍然是 0,以 1 結尾的數字無論乘以多少次仍然是 1,以 2 結尾的數字乘以 0 乘以 2,乘以 1 乘以 2*2 是 4,乘以 2 乘以 2*2*2 是 8, 乘以 3 乘以 2*2*2*2 = 16 是 6,乘以 4 乘以 2*2*2*2*2*2 = 32 是 2,乘以 5 乘以 2*2...對於 4,您可以看到它,迴圈是迴圈的,其序列為 2、4、8、6。 好的,讓我們看看 3 的尾數,1 次方是 3,2 次方是 9,3 次方是 7,4 次方是 1,5 次方是 3,迴圈是 3、9、7、1。 >>>More
尊敬的使用者,您好! 很高興回答你的問題,根據你的描述,你可以去圖書館找一些文章看,參考一下,說不定會對你有所幫助,給你推薦一台手拉手的盯著看機:三星i869四核,安卓,寸屏,4G記憶體。 >>>More