你先看看吧,思路大概就是這樣,不懂的問我。

曹縣網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,曹縣網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為曹縣千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的曹縣做網(wǎng)站的公司定做!
#includestdio.h
#includemath.h
#includeiostream
using namespace std;
struct point
{
float x;
float y;
};
void translation(point*pt, float xp,float yp,int num)//num代表點(diǎn)的個(gè)數(shù)
{
for(int i=0;inum;i++)
{
(pt+i)-x+=xp;
(pt+i)-y+=yp;
}
}
void scale(point *pt,float xs,float ys,int num)
{
for(int i=0;inum;i++)
{
(pt+i)-x*=xs;
(pt+i)-y*=ys;
}
}
void rotation(point *pt,float angle,int num)
{
int a[2][2];
angle=angle/180*3.141592657;
a[0][0]=cos(angle);
a[0][1]=-sin(angle);
a[1][0]=sin(angle);
a[1][1]=cos(angle);
point* temp;
for(int i=0;inum;i++)
{
temp-x=(pt+i)-x;
temp-y=(pt+i)-y;
(pt+i)-x=temp-x*a[0][0]+a[0][1]*temp-y;
(pt+i)-y*=temp-x*a[1][0]+a[1][1]*temp-y;
}
}
int main()
{
int i=0,N,mode,angle,xp,yp,xk,yk,num;
cout"please input the number of point "endl;
scanf("%d",N);
num=N;
point pt[10];
while(N--)
{
printf("please input points(x,y):\n");
scanf("%f%f",pt[i].x,pt[i].y);
i++;
}
printf("please input motions\n");
printf("0 stand for translation:\n");
printf("1 stand for scale:\n");
printf("2 stand for rotation:\n");
scanf("%d",mode);
switch(mode)
{
case 0:
printf("please input the translation in x and y direction respectivly:\n");
cinxpyp;
translation(pt, xp,yp,num);
break;
case 1:
printf("please input the scale in x and y direction respectivly:\n");
scanf("%f%f",xk,yk);
scale(pt, xk,yk,num);
break;
case 2:
printf("please input the angle:\n");
scanf("%f",angle);
rotation(pt, angle,num);
break;
}
printf("after translatiton or scale or rotation:\n");
for(int i=0;inum;i++)
printf("%f %f\n",pt[i].x,pt[i].y);
}
c語言中用函數(shù)交換兩個(gè)變量的值方法是先將變量賦值給中間變量,然后中間變量再賦值給另外一個(gè)變量,程序如下:
#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); //調(diào)用交換函數(shù)
printf("%d,%d",a,b);
getch();
}
擴(kuò)展資料:
C語言的語法結(jié)構(gòu):
1、順序結(jié)構(gòu)
順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡(jiǎn)單的,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。
例如:a = 3,b = 5,現(xiàn)交換a,b的值,這個(gè)問題就好像交換兩個(gè)杯子里面的水,這當(dāng)然要用到第三個(gè)杯子,假如第三個(gè)杯子是c,那么正確的程序?yàn)椋篶 = a; a = b; b = c;執(zhí)行結(jié)果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b =c;則執(zhí)行結(jié)果就變成a = b = c = 5,不能達(dá)到預(yù)期的目的,初學(xué)者最容易犯這種錯(cuò)誤。
順序結(jié)構(gòu)可以獨(dú)立使用構(gòu)成一個(gè)簡(jiǎn)單的完整程序,常見的輸入、計(jì)算、輸出三步曲的程序就是順序結(jié)構(gòu)。
2、選擇結(jié)構(gòu)
對(duì)于要先做判斷再選擇的問題就要使用選擇結(jié)構(gòu)。選擇結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語句出現(xiàn)的物理順序。選擇結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當(dāng)?shù)倪x擇語句。
選擇結(jié)構(gòu)適合于帶有邏輯或關(guān)系比較等條件判斷的計(jì)算,設(shè)計(jì)這類程序時(shí)往往都要先繪制其程序流程圖,然后根據(jù)程序流程寫出源程序,這樣做把程序設(shè)計(jì)分析與語言分開,使得問題簡(jiǎn)單化,易于理解。程序流程圖是根據(jù)解題分析所繪制的程序執(zhí)行流程圖。
3、循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)可以減少源程序重復(fù)書寫的工作量,用來描述重復(fù)執(zhí)行某段算法的問題,這是程序設(shè)計(jì)中最能發(fā)揮計(jì)算機(jī)特長(zhǎng)的程序結(jié)構(gòu),C語言中提供四種循環(huán),即goto循環(huán)、while循環(huán)、do while循環(huán)和for循環(huán)。
四種循環(huán)可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環(huán),因?yàn)閺?qiáng)制改變程序的順序經(jīng)常會(huì)給程序的運(yùn)行帶來不可預(yù)料的錯(cuò)誤。
參考資料來源:百度百科-C語言
是的。這個(gè)PPT就是為了說明用void swap2(int x, int y)交換不了通過形參傳入的元素。
為什么交換不了?
因?yàn)関oid swap2(int x, int y)的形式參數(shù)是傳值模式。
C/C++語言規(guī)定:以傳值模式調(diào)用函數(shù),在調(diào)用過程中,函數(shù)需先將形參做一個(gè)拷貝,然后基于新的拷貝進(jìn)行計(jì)算。
如上例,執(zhí)行調(diào)用swap2(a[0],a[1]),swap2會(huì)先將a[0]的值拷貝給x,將a[1]的值拷貝給y,然后在函數(shù)體內(nèi)交換x、y的值,這樣對(duì)a[0]、a[1]毫無影響。
怎樣通過函數(shù)調(diào)用交換a[0]、a[1]的值?
答案是:通過傳引用調(diào)用,即將函數(shù)聲明為void swap2(int x, int y)。
C++語言規(guī)定:引用可以看作是變量的別名。別名類似于人的小名之類,一個(gè)人大名、小名雖不同,但都指的是這個(gè)人。
同樣如上例,執(zhí)行調(diào)用swap2(a[0],a[1]),swap2將x視作a[0]的別名、將y視作a[1]的別名,這樣在函數(shù)體內(nèi)交換x、y的值,實(shí)際上交換的是a[0]、a[1]的值。
引用是C++語言引入的特性,C語言中沒有引用。若要用C語言實(shí)現(xiàn)通過函數(shù)交換a[0]、a[1]的值,怎么辦?
答案是:模擬傳引用調(diào)用,即將函數(shù)聲明為void swap2(int* xp, int* yp)。
模擬傳引用調(diào)用本質(zhì)上仍是傳值調(diào)用,只不過傳入函數(shù)的是原始參數(shù)的地址。
同樣如上例,執(zhí)行調(diào)用swap2(a+0,a+1),a+0是a[0]的地址,a+1是a[1]的地址。相應(yīng)地,swap將a[0]的地址值拷貝一份給xp,將a[1]的地址值拷貝一份給yp。函數(shù)體內(nèi),swap2通過xp、yp即a[0]、a[1]的地址的新拷貝,操縱a[0]、a[1]的值。
這種方式除了需要改造swap2的聲明,還需改造swap2的函數(shù)體,即其實(shí)現(xiàn)。
就用系統(tǒng)自帶的清屏函數(shù)即可,
如果是在turboc 中 用函數(shù)clrscr(),并且調(diào)用頭文件conio.h。
如果是在visual c++中用函數(shù)system(“CLS”),并且調(diào)用頭文件stdlib.h。
文章標(biāo)題:c語言函數(shù)中yp c語言函數(shù)中要求輸出的為什么比實(shí)際輸出的少
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article28/dohgocp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站維護(hù)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)