c 6 0的一道題,我自己編的,不知道為什麼輸出亂碼,請指出錯誤。

2025-03-04 11:45:34 字數 3667 閱讀 6601

1樓:天上的一條龍

字串還有乙個結束符號'\0',所以長度應該是81,41,41if(i/2==0) 應該是if(i%2==0)我想說的是我心若氺 的程式可能有悖於你程式設計的初衷,你只不過是想在for迴圈之後加乙個字串結束符,而他在迴圈的每一次都賦值,造成了程式執行效率的降低。

#include""

#include""

void main()

char str[81],a[41]=,b[41]=;

int i;

scanf("%s",str);

for(i=0;str[i]!=0';i++)if(i%2==0) a[i/2]=str[i];

else b[i/2]=str[i];

strcpy(str,strcat(a,b));

puts(str);

2樓:我心若氺

改下就行了,我寫的這個就行。

for(i=0;str[i]!=0';i++)以下都為迴圈的。

if(i/2==0) a[i/2]=str[i];

if(i%2==0) a[i/2]=str[i];

else b[i/2]=str[i];

a[i/2+1]=b[i/2+1]='0';

樓上的沒說全對,關鍵是for迴圈要帶3個語句。

3樓:網友

第一,把char str[80],a[40],b[40];提到main()前面,因為如果乙個變數在main()下宣告的話會自動亂碼。

第二,把if(i/2==0)改成if(i%2==0)

這樣就可以了。

c++中編譯時出現亂碼的原因可能有哪些

4樓:mexico卡卡

這是因為編譯器不支援。以下為幾種常用的編譯器。

c++編譯器是乙個與標準化c++高度相容的編譯環境。這點對於編譯可移植的**十分重要。編譯器對不同的cpu會進行不同的優化。

常見的c++編譯器有如下幾種:

gnu c++

g++是乙個開源的c++編譯器,對標準化c++的支援達。

值得一提的是,gcc是gnu c的編譯器, g++是gnu c++的編譯器, 而egcs(enhanced gnu compiler suite)可以認為是gcc的改進版。目前gcc已經改名,從原來代表gnu c compiler改變為代表gnu compiler collection。而mingw或cgywin,是在windows平臺上的gnu c/c++編譯器,以及庫檔案,執行環境的集合。

borland c++

該編譯以速度快、空間效率高而著稱。它的版本對標準化c++的支援達,而官方稱100%符合ansi/iso的c++標準和c99標準。

它是borland公司開發的,是borland c++ builder和borland c++ builder x這兩種ide的後臺編譯器。

visual c++

vc++對標準化c++的相容僅達。

它是visual studio、visual 2002、visual 2003、visual 2005的後臺c++編譯器。隨著stanley lippman等編譯器設計大師的加盟,它變得非常成熟可靠了。visual c++

想用c語言解出這道題,初學者碼不來**。請大神幫幫忙

5樓:風若遠去何人留

分析題目。

1個1個拿,正好拿完。這個是廢話 不用管。

2個2個拿,還剩1個。奇數。

3個3個拿,正好拿完。3的倍數。

4個4個拿,還剩1個。模除4餘1

5個5個拿,還差1個。模除5餘4

6個6個拿,還剩3個。模除6餘3

7個7個拿,正好拿完。7的倍數。

8個8個拿,還剩1個。模除8餘1

9個9個拿,正好拿完。9的倍數。

於是 綜合起來就是 63的奇數倍,模除4餘1,模除5餘4,模除6餘3,模除8餘1

遍歷。#include

int main()

printf("%d",j);

return 0;

計算結果 1449個。

6樓:網友

用for迴圈測試:

for(i = 1; i <= 自己設定; i++)if(i%2==1 &&i%3==0 &&i%4==1 &&i%5==4 &&i%6==3 &&i%7==0 &&i%8==1 &&i%9==0)

print i

其中i%5差1表示餘數為4

c語言的程式編寫錯誤,求高手指教。

7樓:網友

我的執行結果和你的一樣,我用的編譯器分別是:gcc 和 turbo c

我用excel模擬了你的fun函式的運算過程,得到如下截圖:

從截圖可以看出,l 和 x 最後都產生了誤差。但是結果都一直逼近。

而且,你的sum是每迴圈一次,就計算一次 sum = l + 這樣寫法,實際只有最後一次,當i==10的時候,才有效 ,其他9次賦值,都是多餘的。

我不知道你原始題目是什麼,也不知道你的迭代函式是什麼,無法判斷你的 fun() 的編寫是否和原題中的迭代公式一致。

建議你將原始題目中的迭代內容發出來,再幫你看看。

c語言習題求助,編譯通過,執行錯誤,高分求解

8樓:網友

什麼情況,發出來看看。

這段c語言**有什麼錯誤?

9樓:網友

1、函式怎麼沒給出返回值?這樣不能通過編譯的。

在函式定義中最後加上:return sum;

2、函式的呼叫不是照抄函式宣告,而是要給出函式的引數。

sum_arry(a, 5);

sum_arry(a+3, 5);

3、你最後的printf中的sum值,在主函式中一直是0,得不到你想要的結果。

sum=sum_arry(a,5);

4、函式宣告也錯誤,怎麼又有void,又有int?只能有乙個,這裡看你的意思應該是只能有int。

5、你的printf函式也寫錯了。

6、for迴圈也寫錯了,i的初始值是陣列元素值,這是不對的。要和n比較,必須是索引,這裡應該從0開始。

合起來應該是這樣:

#include

int sum_arry(int *p,int n);

main();

sum = sum_arry(a, 5);

printf("輸出元素的和為%d", sum);

sum = sum_arry(a + 3, 5);

printf("輸出元素的和為%d", sum);

int sum_arry(int *p,int n)}

10樓:王老虎愛吃蘿蔔

#include

int sum_arry(int *p,int n);

main();

int length = sizeof (a)/sizeof (int);

sum = sum_arry(a,length);

printf("輸出元素的和為%d",sum);

int sum_arry(int *p,int n)return sum;

/改了改,你先前寫那個錯誤太多了。

有一道數學題不知道怎麼解,求解,求解一道數學題。

40 40 100 80 80 答案自己算 先算出一塊邊長40cm方磚的面積40 40,再算出廚房總面積40 40 100,最後除以邊長80cm的面積,最後得出來就是塊數 用磚總面積 0.4 平方米 100 16 平方米 廚房面積 16 估算廚房長和寬 2米 8米 16平方米 0.4 5塊 0.4 ...

一道求ab的c語言題一道求AB的c語言題?

include define m 50 main 比較兩個的長短,把長的那個放到c裡,短的放到d裡 else if ia ib a 0 b 0 0 9 else 比較兩個的長短,把長的那個放到c裡,短的放到d裡 ic strlen c id strlen d 求出實際參加運算的c,d的長度 do 處...

c語言的一道選擇題,一道C語言選擇題 以下正確的程式段是

c語句以分號來表示語句的結束,注意到第2個for迴圈後面的分號了嗎?那表示for迴圈到那裡就結束了,後面的printf語句並不是for迴圈的1部分,所以只是輸出1個星號。因為print這句前有個分號,表示空語句,也就是說,迴圈體內的句子是空,迴圈完之後,又執行了一個列印操作。有點看不清啊,不過應該是...