1. 程式人生 > >C語言:使用函式實現兩個數的交換。

C語言:使用函式實現兩個數的交換。

此題的解決思路為:建立一個Swap函式,引數為a和b,函式內部建立一個臨時變數tmp,用於交換兩個數。

但需要注意的是:函式傳參的過程中需要注意,形參是實參的一份臨時拷貝,形參的改變不會影響實參,所以此時函式傳參的時候需要傳遞實參的地址(&a),即傳址呼叫,在接收部分就要使用指變數來接收(*p),這樣可以使實參和形參產生一定的聯絡。

具體程式碼如下:

#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include <stdlib.h>
void swap(int *a, int *b)
{
	int tmp;
	tmp = *a;
	*a = *b;
	*b = tmp;
}
int main()
{
	int a = 0;
	int b = 0;
	printf("請輸入兩個數\n");
	printf("a = ");
	scanf("%d", &a);
	printf("b = ");
	scanf("%d", &b);
	swap(&a, &b);
	printf("a = %d b = %d", a, b);
	system("pause");
	return 0;
}

相關推薦

C語言程式設計實現個矩陣

輸入一個3乘4矩陣✖️4乘5矩陣,輸出一個3乘5的矩陣 #include<stdio.h> int main() { int matrix1[3][4],matrix2[4][5],matrix3[3][5]; int i,j,k; int jz3[

C語言指針實現個數的互換

c語言指針 存儲 col clu stdio.h 實現 置換 形參與實參 兩個 #include <stdio.h> void change1(int a, int b)//形參與實參不是同一個變量{ int t; t = a; a = b; b = t; }

C語言使用函式實現個數交換

此題的解決思路為:建立一個Swap函式,引數為a和b,函式內部建立一個臨時變數tmp,用於交換兩個數。 但需要注意的是:函式傳參的過程中需要注意,形參是實參的一份臨時拷貝,形參的改變不會影響實參,所以此時函式傳參的時候需要傳遞實參的地址(&a),即傳址呼叫,在接收部

C語言使用memcpy函式實現個數間任意位置的複製操作

  c和c++使用的記憶體拷貝函式,memcpy函式的功能是從源src所指的記憶體地址的起始位置開始拷貝n個位元組到目標dest所指的記憶體地址的起始位置中。   用法:void *memcpy(void *dest, const void *src, size_t n); 舉例:   char tes

[c語言] 呼叫函式實現個數中的最大值

#include<stdio.h>int max(int x, int y){int max = 0;if (x < y){max = y;}else{max = x;}return

C 使用函式實現個數交換

1.程式程式碼 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <Windows.h> int change_num(int *n1, int *n2)

[C]C語言函式實現返回引數二進位制中 1 的個數

通過C語言程式將十進位制數轉化成二進位制數,然後求出二進位制數中1的個數。 下面用三種方法來實現。來 方法一: 除2取餘法。對一十進位制數,用2輾轉相除至結果為1,將餘數和最後的1從下向上倒序寫就是對應的二進位制。 例如:十進位制數302轉化成二進位制。 302

C語言模擬實現字串函式strlen,strcpy,strcat,strcmp,strchr,strstr

什麼是C語言中的字串 字串或串(String)是由數字、字母、下劃線組成的一串字元。通常放在常量字串中或者字元陣列中。C語言中以 ‘\0’ 來作為字串的結束標記。 字元的ASCII編碼表 1.strlen 功能:字串求長 計算給定字串的(unsigned in

使用函式實現個數交換

#include <stdio.h> void swap(int *a,int *b) { int tmp; tmp=*a; *a=*b; *b=tmp; } int main()

(C語言)用函式實現求三個數最大值

題目描述:從鍵盤輸入三個數,之後呼叫函式實現求三個數的最大值 程式碼實現: #include<stdio.h> int main() { int qmax(int a,int b,int c); //求最大值函式的宣告 int x,y,z; int max

使用函式實現個數交換

#include<stdio.h> int swap(int *num1,int *num2) //異或方法交換 { *num1=*num1^*num2;

C語言模擬實現printf函式

4.1.模擬實現printf函式,可完成下面的功能 能完成下面函式的呼叫。  print("s ccc d.\n","hello",'b','i','t',100);  函式原型:  print(char *format, ...)  程式碼如下: #include &l

C語言 trim函式實現

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> //去除尾部空格 char *rtrim(char *str) { if(str == N

C語言函式中引數的傳值與傳地址

任務程式碼: #include <stdio.h> void swap(int *a ,int *b)//按之前對指標認識,*a代表指標變數a,a儲存的是地址,*a是地址的值。 { //但是可以看到下面傳輸過程中swap(

C語言函式巢狀2^2!+3^2!

#include <stdio.h> long f1(int p); long f2(int q);   int main (){ int i = 0; long s = 0; for(i = 2;i <= 3;i++) { s = s + f2(i); } pr

C語言求單詞的個數,用上isalpha

#include<stdio.h> #include<assert.h> #include<ctype.h> //求單詞的個數,用上isalpha int NumWord(char *str) { assert(str

C語言strcmp比較個字串是否相等

#include<stdio.h> #include<string.h> //比較兩個字串是否相等,(或者說前字串比後字串不同的地方大幾) int My_strcmp( const char *str1

指標函式完成個數交換

#include<stdio.h> void swap(int *x,int *y) { int t; t=*x; *x=*y; *y=t; } main() { int a,b; int *p1,*p2;

C語言程式 函式實現求100~200間素數

函式實現求100~200間素數,及其數目 程式程式碼如下: #include <stdio.h> #include <math.h> int is_prime(int num)

C語言函式宣告與定義的引數不一致問題,後果可能很嚴重哦!!!!!

  具體:在檔案main.c中 int func ();     //宣告中沒引數 int main(){         int c = func();            //呼叫時也不傳參,這樣才能編譯通過         printf("%d\n",c);