1樓:宦怡乜杉月
笨啊,題目。
都說了。資料範手巨集圍在10-100間,你就拿乙個100的數畢返冊組做標記不就得了。
#include
usingnamespace
std;int
main()
intn,i,t;
intflag[100];
flagarray
memset(flag,0,sizeof(flag));
cin>>n;
for(i=0;i>t;
if0==flag[t])
flag[t]
if0==i)
cout世銷return
2樓:印策勾楚潔
intmain()
intn,i,j;
cin>>n;
inta[n],tmp,cnt=0;
for(i=0;i>tmp;
讀入陣列。for(j=0;jifa[j]==tmp)
continue;//檢查有沒有重複的,有就直接扔掉。
a[cnt++]
tmp;cout
tmp;/輸出。
return
試試這個,應該會快點,但是並不是枯殲最快的,並豎再快可能要沒蔽衝排序了。
為什麼這道c語言的關於字元陣列的題我做錯了?高手幫忙看下~~
3樓:網友
//第一,「n位置的開始處」這個說法很不準確,我的理解是:如果n位置是字元'x',那麼插入字元後為:xbbbb(設"bbbb"為插入的字元)
按照你介紹,加上空格這個字元,'o'前面的位置應該是9
第二,你的字串太小了,如果str1裡的字元為12個,str2裡的字元10個,這樣插入的話很容易就溢位。
第三,插入的方法不對。
#include
int main()
for(i=0;i<100;i++)//計算str2裡的字元數。
還有其他的情況例如字元數過多(str1用了80個,str2有30個)等待情況都可以通過這兩個記錄來進行判斷,就不贅述了。
if(n<=0||n>size1)//判斷條件"n<=0||n>20"也不對,在n=18處插入乙個大小為4的字串是不行的。
我用這個判斷插入點是否在str1的那些字元內,自己定的,好像你沒這個要求。
while(n<=0||n>size1);
* while(str1[i]!=str1[k])
i++;while(str1[i++]=str2[j++]='\0')
puts(str1);
你的這個實現插入的語句有問題,在插入的時候,要先找到插入點,將str1的插入點之後的字元往後挪,以空處size2個長度來存放str2的字元。
for(i=size1+size2-1;i>n;i--)//後挪。
str1[i]=str1[i-size2];//ok
for(i=n;i//ok
puts(str1);
return 0;}
4樓:網友
錯誤在倒數第五行:
while(str1[i++]=str2[j++]='\0')應該為while((str1[i++]=str2[j++]='\0')
請原諒我為了明顯使用了全形括號。
不等號(!=)的優先順序大於賦值號(=),所以你那一句實際上是while(str1[i++]=(str2[j++]='\0'))
str1裡不是1就是0,怎麼可能對。。。
儘量不要再邏輯表示式中使用賦值號(=),很容易出錯,要格外小心。
5樓:網友
有問題先檢查一下,你能告訴我你那個k是什麼麼?沒有賦值過。
6樓:無影之牆
k沒賦值,輸入的n沒用到。
c語言陣列題哪個對那個錯?
7樓:網友
a是對的。陣列中只能儲存同種型別的資料。
b是錯的。如果賦給的資料個數比定義的陣列元素多,就會造成越界錯誤,篡改掉相鄰的資料塊內容。
c是對的。陣列的名稱符號,其含義相當於乙個指標,指向陣列在記憶體中的首址。
d是對的。傳遞陣列給函式後,也就相當於把這個指標給函式了,一旦函式內按照陣列名進行操作,就會直接修改陣列在記憶體中的實際內容。
8樓:匿名使用者
只有b是錯誤的,因為這樣會造成陣列訪問越界,造成陣列外的位址被非法賦值。
a正確,這是陣列的定義。
c正確,陣列名就是首元素的位址,因而陣列名可以當作指標使用d正確,當陣列名作為指標被傳給某函式時,確實可以在子函式中修改陣列內容,因為子函式提到了位址值,通過位址當然可以修改其中內容。
9樓:網友
b不對。陣列空間不能動態擴大。a,c是對的。d如果傳遞給函式的是陣列名,即陣列的首位址,那麼可以在函式中修改陣列元素的值。
10樓:哈哈呵呵你好
a是對的,在c語言中陣列只能存放一種型別的資料。
11樓:網友
b錯 其他全對 我認為。
c語言,陣列輸入遇到問題求大神指教:**錯了,如何改正,為什麼會出現這種情況?
12樓:自我程式設計
scanf的格式加'',含義特殊,不是輸入乙個回車,而是輸入完乙個數字後,必須等待乙個非空格、製表符、回車的輸入,程式才會繼續。
所以你那樣寫,第一次迴圈輸入2回車,不會進入下一次迴圈,而是等待再次輸入,然後你輸入3的時候2被儲存在元素1中,進入下乙個迴圈,已經有3了還要等待輸入,於是你輸入4,實際儲存的是3,所以後面都錯位了,結果就是最後乙個輸入沒有被儲存。
另外所有i迴圈都從0開始,包括氣泡排序。
修改如下:#include
#include
int main()
for(i=0;i<=10;i++)
for(j=i+1;j<=10;j++)
if(a[i]>a[j])
for(i=0;i<=10;i++)
printf("%d ",a[i]);
system("pause");return 0;}
13樓:阿冬
對於c語言來說,陣列下標從0開始,你**中是從1開始,這樣雖然並不會出錯,但浪費了乙個空間。真正有錯誤的地方是輸入函式scanf中,不應該加,該函式會自動根據回車,空格以及tab來分隔輸入的資料。
14樓:網友
#include
#include
int main()
for ( i=0;i<10-1;i++ for ( j=i+1;j<10;j++ if ( a[i]>a[j] )
for ( i=0;i<10;i++ printf("%d ",a[i]);printf("");
system("pause");
return 0;
a[11]多定義乙個a[0],雖然不用但不必非要使用下標從1開始,c語言的for語句非常適合下標從0開始的陣列遍歷,你只需要考慮「請輸入第%d個數」時使用i+1替代i即可。
以上程式有幾個地方修改過。
15樓:東學仔
csharp中陣列的公升序和降序排列:
請輸入6個整數按回車確認每個整數");
int myintarr = new int[6];
for (int i = 0; i < 6; i++)myintarr[i] = ;
你輸入的數字為:");
foreach (int outint in myintarr) +"\t");
**********=降序排列後為:");
for(int i = 0; i < 1; i++)
foreach (int outint in myintarr) +"\t");
**********=公升序排列後為:");
for (int i = 0; i < 1; i++)
foreach (int outint in myintarr) +"\t");;
16樓:網友
1、第三方的軟體屏鎖密碼忘記:由於開機時啟動不是很快,在剛剛開機的那時候軟體還沒有啟動起來。可以利用這一點來解決手機鎖屏密碼忘記的問題,將手機關機重啟,利用剛剛開機的短暫時間將手機上的第三方鎖頻軟體解除安裝,解除安裝後我們的手機就恢復正常了。
c++的問題是有關陣列的。
17樓:
第四題c答案:定義的是2列3行的陣列,所以大括號內是按行給出了的三個值,是對的!
第六題d答案:這個是應該缺少條件的,對於i和j的取值範圍,題目中並沒有給出,如果i和j都等於0的話,也就是a[0][0],題目中就沒有答案。你只需要知道,二維陣列,在記憶體中的位址是按照行來的,即先排滿一行,在排下一行。
c語言關於陣列的乙個問題
18樓:莊政警
c=str+'3';
這個語句有兩處錯誤,一處邏輯錯誤,一處語法錯誤str+'3'就是str+51, str+51從語法上看沒有錯誤,就是返回從str開始偏移51個char單位的位址,但str陣列定義時長度是8,所以str+51是越界的位址,這是邏輯錯誤。
c是個char,而str+51是個char*,是個位址,這是不能給c賦值的,這個是語法錯誤。
19樓:網友
糾正樓上乙個說法,注意此處是個語義錯誤但並不是語法錯誤;實際編譯中編譯器可能會出warning但編譯是可以通過的,因為c是個弱型別語言,指標和char都被視作數值型別,能夠進行各類自動轉換。
關於題主的問題,注意此處加的是'3'而不是3,即ascii碼的偏移51實際造成陣列越界。
一道邏輯題為什麼選a不選d,一道邏輯題,為什麼選d不選a?
在所有的選項中,要想反駁題中的假設,必須提出其它的因素。a項中說,參加創始人培訓班的粉絲中的客戶購買手機量增多,很顯然是參加培訓班起了作用,與 情懷 無關。上面批註說得就很對啊,題目說的是平均,跟總量無關啊 一道邏輯題,為什麼選a不選d?題幹的觀點是第一句 美國大眾文化的歐洲化已經達到了25年前無法...
一道英語閱讀題,為什麼選B不選c
提出兩種觀點,對比的面更大,關於選項c,說的提出相反觀點,文中並沒刻意說出說誰好誰壞,不能說conflicting views,做這種題感覺也很重要,尤其考研英語更是如此。用更極端的例子來和正常的想法做對比吧 用了對比的方法,第一種是減少溫室氣體,第二種是把地球的軌道外移50 這裡沒有矛盾的觀點。英...
一道C語言中的指標問題,一道C語言的指標問題
include void main 第乙個空填char str1,str2 後面如樓上所說。p1 p1 p2 一道c語言的指標問題 a char s 5 abcde bai 字串這樣賦值時,末尾有乙個du預設的zhi串尾符 0,所以字串 abcde 的實際長度是dao 回6,s 5 是儲存不下的,溢...