1樓:
首先你的自定義函式沒有返回值 是void的,所以fun函式只做輸出x,y值的作用
那麼來分析一下,你給fun函式傳遞進去 ,5,3首先賦值運算這,1.x=x+y;x=5+3;x=8;
2.y=x-y;y=8-3;y=5;
3.x=x-y;x=8-5;x=3;
所以輸出個 3,5;
既然fun函式沒有返回值,所以x,y的值不影響main函式的執行,也就是說main函式中,x,y的值沒有被改變
所以輸出 5,3
2樓:匿名使用者
首先fun函式內
x=5 y=3
x=x+y 後 x=8
y=x-y 後 y=5
x=x-y 後 x=3
所以第一
組輸出是3,5,
至於為什麼第二組是5,3,
那是因為你函式使用的是值參 而函式執行完成後 值參的傳參方式不改變引數的值
3樓:匿名使用者
void fun()功能為互換兩個數,結果:3,5,
main()呼叫fun(a,b)後,由於引數傳遞為值傳遞,單向傳遞,結果不能傳回主調函式,所以main()內a和b之不變,結果5,3
所以,此程式的執行結果為 3,5,5,3
為什麼我這個c語言程式執行完結果還是a=3,b=5?不是應該互換嗎?求解答
4樓:陌路賣醬油
你傳來的引數是值,在函式裡交換完後源,會bai釋放空間,而du且你並沒有接收函式傳zhi出的資料。
# include
void f(int*
dao i, int* j)
}int main(void)
5樓:匿名使用者
c語言給函式傳遞引數的時候,實際上傳遞的是引數的副本(陣列除外),所以在函式內對引數的修改對原引數沒有影響。
6樓:匿名使用者
f函式不能修改你主函式中定義的變數a和b的值。函式需要傳址引數才可以。就是說你必須將f函式的兩個引數定義為指標型別。
c語言中%5.3s 是什麼意思?
7樓:匿名使用者
%5.3s中:
5是佔幾個字元的寬度,
3是擷取幾個字元,
本題中:擷取3個字元,前面加2個空格,總佔位長度5
8樓:雲南萬通汽車學校
前兩來個都是e格式符,以指數形自式輸出實數。
1.%e:不指bai
定輸出數
du據所佔的寬度和數zhi字部分的小數位數dao,有的c編譯系統自動指定給出數字部分的小數位數為6位,指數部分佔5位(如e+002),其中"e"佔1位,指數符號佔1位,指數佔3位,總的指數部分佔5位。數值按規範化指數形式輸出。例如:
printf("%e",123.456);輸出如下:1.
234560e+002(共13列,有的系統的規定有所不同);
2.%m.ne 輸出的資料共佔m列,其中有n位小數。如果數值長度小於m,則左端補空格。
後兩個都是s格式符,用來輸出字串。
%m.ns 輸出佔m列,但只取字串中左端n個字元。這n個字元輸出在m列的右側,左補空格。
c語言將10個數字從小到大排列,為什麼我的**輸入是1,2,3,4,5,6,7,8,9,10輸出是1,10,9,8,7,6,5,4,3,2呢?
9樓:
程式來#include
#include
int main()
void array(int x,int n);
array(a,10);
printf("從小du
到大zhi
排列為dao:\n");
for(i=0;i<=9;i++)
getch();
return 0;
}void array(int x,int n)}}}
10樓:匿名使用者
這種問題一般是
抄邊界定義出錯,就襲是for()裡面的迴圈的條件定義出錯,用冒泡去排序效果會好一點,我把你的程式改了改,現在可以完成你的排序要求了
#include
#include
void array(int x,int n)}}}int main()
array(a,10);
printf("從小到大排列為:\n");
for(i=0;i<=9;i++)
getch();
return 0;}
11樓:匿名使用者
1. void array中的引數
復int n沒用到,刪去制吧bai
。2. 氣泡排序有問題
du,從大到小zhi,應為:
daofor( i = 0; i < 10; i++)for( j = 0 ; j < 9 - i; j++)if( x[j] < x[j + 1] )
12樓:還是已被佔用
最後一bai個for迴圈 j=0 而不是duj=1給你標上了
#include
#include
int main()
void array(int x,int n);
array(a,10);
printf("從小到大排列為:\n");
for(i=0;i<=9;i++)
getch();
return 0;
}void array(int x,int n)}}}而且dao n是多餘的專 有沒有不影
響 還佔用屬資源!
13樓:星雅樂
排序排錯了
第一輪:i=0判斷 1>2false 1>3false.........1>9false
第二輪:i=1判斷 2>2 false 2>3false...........2>9false
第三輪:i=2判斷 3>2true交換 3>3false.....
.......
第十輪迴:i=9判斷 10>2turn交換........
明白沒,答
14樓:匿名使用者
最後一個for迴圈,試試
for(j=i+1;j<=9;j++)
急求c語言程式:將1,2,3,4,5,6,7,8,9共9個數分成三組,組成3個三位數,且使這3個三
15樓:匿名使用者
int check(int a,int b,int c),i;long num = a*1000000+b*1000+c;
if(b>1000 || c>1000)return 0;//確保是三位數
for(i = 0;i < 10;i++)else return 0;
}return 1;
}int main()}}
}}}return 0;
}上面剛寫的,實現思路:先把所有三位數找出來(並且三位數不能相同),上面**的關鍵在check方法,我先把它傳遞進來的三個資料進行檢查,因為傳遞過來的時候就是構成1:2:
3的比例,我現在就是要檢查是否是從1到9所有數字都有並且不重複(不懂就追問。)
c語言求解閱讀下面程式,程式執行後的輸出結果為
c忘記,c 的話bai 是一個轉換,du一個型別zhi強制轉換,因為字元可dao以轉化為整內形,整形可以轉化為字容符,只要對應ascii表就可以知道 這個表是用整數表示 第一次迴圈,0轉化,9轉化,然後自增自減,a輸出0到4 化字元,askii碼 b是9到5 一樣ascii 碼 c 對應的是 0為空...
為什麼c語言程式執行輸入後沒有輸出
輸入格式不對,要輸入 浮點數 並用 逗號 分隔輸入三個數兩個逗號後還要額外多加一回車才開始後面的流程,如果把scanf f,f,f n a,b,c 改為scanf f f f a,b,c 就可以用空白符做分隔了,現在你的程式是指定要用半形逗號做分隔符用回車做最後字元 另外程式邏輯也差一點,沒檢查 b...
在c語言程式的執行是從a本程式的main函
從main函式開始到main函式結束。答案選a。c語言常考考點 1 一個c語言源程式可以由一個或多個原始檔組成。2 每個原始檔可由一個或多個函式組成。3 一個源程式不論由多少個檔案組成,都有一個且只能有一個main函式,即主函式。是整個程式的入口。4 源程式中可以有預處理命令 包括include 命...