A. c語言交換兩個數的值,函數聲明問題。
編譯器沒報錯但是有提示
warningC4047:'function':'int''int*'
只要不影響運行,編譯器都不會報錯
另外即是聲明有錯結果依然是對的
#include<stdio.h>
voidswap(int,int);
intmain()
{
intnumber1=3;
intnumber2=4;
swap(&number1,&number2);
printf("number1=%d ",number1);
printf("number2=%d ",number2);
}
voidswap(int*p1,int*p2)
{
inttemp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
B. c語言中用函數交換兩個變數的值
c語言中用函數交換兩個變數的值方法是先將變數賦值給中間變數,然後中間變數再賦值給另外一個變數,程序如下:
#include "Stdio.h"
#include "Conio.h"
void swap(int x,int y)
{
int t,m;
t=x; //變數x賦值給中間變數t
m=y; //變數y賦值給中間變數m
x=m; //中間變數m賦值給變數x,將y的值賦值給了x。
y=t; //中間變數t賦值給變數y,將x的值賦值給了y。
}
main()
{
int a,b;
a=1,b=2;
swap(a,b); //調用交換函數
printf("%d,%d",a,b);
getch();
}
(2)c語言交換兩個數函數擴展閱讀:
C語言的語法結構:
1、順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如:a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子裡面的水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為:c = a; a = b; b = c;執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b =c;則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。
順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算、輸出三步曲的程序就是順序結構。
2、選擇結構
對於要先做判斷再選擇的問題就要使用選擇結構。選擇結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。選擇結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的選擇語句。
選擇結構適合於帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。
3、循環結構
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do while循環和for循環。
四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環,因為強制改變程序的順序經常會給程序的運行帶來不可預料的錯誤。
C. C語言怎麼用自定義函數將兩個數交換
要用函數實現兩個數的交換,則函數參數必須定義為指針形式,否則函數中對數值的修改將不會影響主調函數,這是C語言的規則。
所以,以整型為例,自定義函數書寫如下:
void
swap_int(int*a,int*b)
{
int
t;
t
=
*a;
*a=*b;
*b=t;
}
D. C語言交換2個數的值
不要臨時變數的寫法#include <stdio.h>int main()
{
int a ,b;
printf("請輸入a 和 b 的值:\n");
scanf("%d%d",&a,&b) ;
printf(" a 的值為%d\n",a);
printf(" b 的值為%d\n",b);
a = a + b ;
b = a + b ;
a = b - a ;
b = b -2*a ;
printf("交換後:");
printf("a 的值為%d\n",a);
printf("b 的值為%d\n",b);}
E. C語言用函數如何實現兩個數交換
#include"stdio.h"int swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}
main(){int x,y;printf("請輸入x與y的值,用空格隔開 ");scanf("%d%d",&x,&y);printf("x=%d,y=%d ",x,y);swap(&x,&y);printf("交換後 x=%d,y=%d ",x,y);}
(5)c語言交換兩個數函數擴展閱讀:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
F. c語言交換兩個數的函數
好像沒有return(x,y)這種寫法吧,這樣寫應該可以
void swap(int *x,int *y)
{
int c;
c=*x;
*x=*y;
*y=c;
}
G. C語言 交換兩個數
c語言默認是返回i整形值,但最好不要省略返回值類型,可讀性不好,並在以後使用時會引發錯誤.
還有你的swip函數中交換值是沒有作用的,因為c中除了數組名外,其它所有類型的參數都是傳引用,即把當前變數的值的一份拷貝傳給函數,而不是真正直接改變被拷貝變數的值.拷貝的意思是,假如你聲明變數x = 5 y =7,則你在調用函數swip(x,y)的時候 x , y 是在內存中臨時創建的另外兩個局部變數,只不過他們的名字被定義為x , y 他們和前面定義的 x , y 有相同的值 。但是區別是swip
中的 x,y會在執行完swip函數自動消失,他們的值也跟著消失。結果相當於你的函數根本沒有使用在main方法中聲明的x , y(這x里不好畫圖,也許不太明確。)所以即使你的swip函數是正確的,你的main函數的輸出結果也是不會交換值 的。要想用swip函數完成換值,需將main中聲明的
x , y 的地址傳給swip,同時swip中的形參類型也要變成swip(int *x , int *y)(int a ; a = *x , *y = *x , *x = a)如果你看不懂的話先去看一下指針的內容,弄清函數的穿值 調用和傳引用調用。建議你去看一看<<c和指針>>的函數一章,希望能幫到你 。 還有,交換兩個值還有其它的方法,不妨去搜一下。
H. C語言中定義一個函數交換兩個數的值
#include <stdio.h>
void Swap1(int* a, int* b)
{
int c = *a;
*a = *b;
*b = c;
}
main()
{
int a, b;
scanf("%d,%d", &a, &b);
printf(" a=%d,b=%d", a, b);
Swap1(&a, &b);
printf(" a=%d,b=%d", a, b);
}
I. 怎樣用函數調用交換兩個數的值 c語言
#include
<stdio.h>
void
change(int
*a,int
*b){
int
m;
//定義一個臨時變數
m
=
*a;
//把a指向的值放到m中
*a
=
*b;
//把b指向的值放到a指向的內存中
*b
=
m;
//把m中的值放到b指向的空間中,函數調用結束時m的生成周期也完了,就釋放掉了
}
int
main(){
int
i
=
1;
int
j
=
2;
change(&i
,&j);
//函數調用
printf("%d,%d\n",i,j);
return
0;
}
J. C語言 :通過函數交換兩個變數的值
#include<stdio.h>
voidf(int*a,int*b){intc;c=*a;*a=*b;*b=c;}
voidmain(){inta,b;
a=1;b=2;f(&a,&b);printf("%d%d ",a,b);
}