Ⅰ C語言模塊化編程要怎麼寫
為解決問題,將問題分成若干個小部分,每個部分設定一個函數來解決它!
Ⅱ 編程都有哪些語言
目前最主要的便是這五種語言:
1.Python:
Python是一門易讀、易維護,並且被大量用戶所歡迎的、用途廣泛的語言。由於具有豐富和強大的庫,又被稱為膠水語言,Python 極其容易上手,主要源於Python有極其簡單的說明文檔。
Python 的應用領域分為系統編程,用戶圖形介面,Internet 腳本,組件集成,資料庫編程,快速原型,數值計算和科學計算編程,游戲、圖像、人工智慧、XML 、機器人編程等等。
2.java
Java擁有跨平台、面向對象、泛型編程的特性,非常受企業的喜歡,廣泛應用於企業級Web應用開發和移動應用開發。
Java發展到現在,按應用來分主要分為三大塊:J2SE、J2ME、J2EE。三塊應用范圍不同,但卻相互補充。廣泛應用於PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。
3.C語言/C++:
C語言是一種通用的命令式編程語言,它起源於19世紀70年代,是大學裡面計算機專業學的第一門編程語言,使用相當廣泛,並且深遠地影響了其後的幾乎每一種語言。
C++最初是作為C語言的增強版出現,C++是一種靜態數據類型檢查的、支持多重編程範式的通用程序設計 語言。C++被用在一些知名軟體中,比如Firefox、 Winamp以及Adobe programs。
目前而言,C語言主要用來開發底層模塊(比如驅動、解碼器、演算法實現),服務應用(比如web伺服器)和嵌入式應用(比如微波爐里的程序)。C++也可以做這些,不過由於C++的復雜性和標准問題,人們還是更願意使用C來做。
4.JavaScript:
JavaScript是一種基於對象和事件驅動並具有相對安全性的客戶端腳本語言。聽起來好像和java有些關系,然而卻不是的,只不過名字像而已。
同時JavaScrip也是一種廣泛用於客戶端Web開發的腳本語言,常用來給HTML網頁添加動態功能,比如響應用戶的各種操作。JavaScript也可以用在游戲開發等方面。
5.PHP:
PHP(Hypertext Processor) 是一種免費的強大的伺服器端腳本語言,主要目標是允許網路開發人員快速編寫動態頁面,同時也被廣泛應用於其他領域。
如 Web 開發並可嵌入 HTML 中去,受到web開發者的歡迎。包括Wordpress、Digg以及Facebook在內均使用了該語言。
PHP的語法利用了C、Java 和Perl,易於學習。目前PHP的應用范圍已經相當廣泛,尤其是在網頁程式的開發上。
Ⅲ 如何分塊進行C語言編程(詳細)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char filename[]="查詢結果.txt";
FILE *fp;
struct ticket
{
char banci[20]; //班次
char shifadi[20]; //始發地
char zhongdian[20];//終點站
int date; //日期
int rest; //剩餘票數
struct ticket *next;
}Node;
//1、創建鏈表
struct ticket *creat(int n)
{
struct ticket *head,*tail,*newnode;
int i;
head=(struct ticket *)malloc(sizeof(Node));
head->next=NULL;
tail=head;
printf("車輛班次、始發地、終點站、日期(月 日 如九月六日0906)、剩餘票數\n");
for(i=0;i<n;i++)
{
newnode=(struct ticket *)malloc(sizeof(Node));
printf("請輸入第%d次的數據:\n",i+1);
scanf("%s",newnode->banci);
scanf("%s",newnode->shifadi);
scanf("%s",newnode->zhongdian);
scanf("%d",&newnode->date);
scanf("%d",&newnode->rest);
tail->next=newnode;
tail=newnode;
}
tail->next=NULL;
return(head);
}
//4、瀏覽
void print(struct ticket *head)
{
struct ticket *p;
p=head->next;
fp=fopen(filename,"ab+");
printf("班次\t始發地\t終點地\t日期\t剩餘票數 \n");
fprintf(fp,"班次\t始發地\t終點地\t日期\t剩餘票數 \n");
while(p!=NULL)
{
fprintf(fp,"%s\t%s\t%s\t%d\t%d \n",p->banci,p->shifadi,p->zhongdian,p->date,p->rest);
printf("%s\t%s\t%s\t%d\t%d \n",p->banci,p->shifadi,p->zhongdian,p->date,p->rest);
p=p->next;
}
fclose(fp);
}
//2、增加班次
struct ticket *insert (struct ticket *head)
{
struct ticket *newnode,*p, *q;
printf("輸入增加的車輛班次、始發地、終點站、日期(月 日 如九月六日09 06)、剩餘票數\n");
scanf("%s",Node.banci);
scanf("%s",Node.shifadi);
scanf("%s",Node.zhongdian);
scanf("%d",&Node.date);
scanf("%d",&Node.rest);
newnode=(struct ticket *)malloc(sizeof(Node));
strcpy(newnode->banci,Node.banci);
newnode->date=Node.date;
newnode->rest=Node.rest;
strcpy(newnode->shifadi,Node.shifadi);
strcpy(newnode->zhongdian,Node.zhongdian);
p=head->next;
if (p==NULL)
{
head->next=newnode;
newnode->next=NULL;
}else{
while(p!=NULL)
{
q=p;
p=p->next;
}
q->next=newnode;
newnode->next=NULL;
}
return (head);
}
//6、訂票
struct ticket *book(struct ticket *head,char b[],int n)
{
struct ticket *p;
p=head->next;
if(n==1)
{
while(p!=NULL&&strcmp(b,p->banci)!=0){
p=p->next;
}
if(p==NULL)
printf("你所預定的班次不存在");
if(strcmp(b,p->banci)==0)
{
if(p->rest>0)
{
p->rest=p->rest-1;
printf("訂票成功");
}
else{
printf("票已售完");
}
}
}
if(n==2)
{
while(p!=NULL&&strcmp(b,p->banci)!=0){
p=p->next;
}
if(p==NULL){
printf("你所退定的班次不存在");
}
if(strcmp(b,p->banci)==0)
{
if(p->rest>0)
{
p->rest=p->rest+1;
printf("退票成功");
}
}
}
return (head);
}
//3、刪除班次
struct ticket *del(struct ticket *head,char b[])
{
struct ticket *p,*q;
p=head->next;
while(p!=NULL&&strcmp(b,p->banci))
{
q=p;
p=p->next;
}
if (p==NULL)
{
printf("未找到你要刪除的班次!~、\n");
}else{
if((p==head->next)&&(strcmp(b,p->banci)==0))
{
if (p->next==NULL)
{
free(p);
head->next=NULL;
}else{
head->next=p->next;
free(p);
}
printf("刪除成功!~、\n");
}else if((p!=head->next)&&(strcmp(b,p->banci)==0))
{
if (p->next==NULL)
{
free(p);
q->next=NULL;
}else{
q->next=p->next;
free(p);
}
printf("刪除成功!~、\n");
}
}
return (head);
}
//5、查詢
struct ticket *chaxun1(struct ticket *head,char a[])
{
struct ticket *p;
p=head->next;
printf("班次\t始發地\t終點地\t日期\t剩餘票數 \n");
while(p!=NULL)
{
if(strcmp(p->banci,a)==0)
{
printf("%s\t%s\t%s\t%d\t%d \n",p->banci,p->shifadi,p->zhongdian,p->date,p->rest);
break;
}
else
p=p->next;
}
if(p==NULL){
printf("查詢班次不存在\n");
}
return(head);
}
struct ticket *chaxun2(struct ticket *head,char a[])
{
struct ticket *p;
p=head->next;
printf("班次\t始發地\t終點地\t日期\t剩餘票數 \n");
while(p!=NULL)
{
if(strcmp(p->shifadi,a)==0)
{
printf("%s\t%s\t%s\t%d\t%d \n",p->banci,p->shifadi,p->zhongdian,p->date,p->rest);
break;
}
else
p=p->next;
}
return(head);
}
struct ticket *chaxun3(struct ticket *head,int m)
{
struct ticket *p;
p=head->next;
printf("班次\t始發地\t終點地\t日期\t剩餘票數 \n");
while(p!=NULL)
{
if(p->date==m)
{
printf("%s\t%s\t%s\t%d\t%d \n",p->banci,p->shifadi,p->zhongdian,p->date,p->rest);
break;
}
else
p=p->next;
}
return(head);
}
void main()
{
printf("=============================車票查詢訂購系統===============================\n");
printf("1、讀入車輛班次初始化信息\n");
printf("2、增加班次信息\n");
printf("3、刪除班次信息\n");
printf("4、瀏覽所有班次\n");
printf("5、查詢\n");
printf("6、訂票退票\n");
printf("7、退出\n");
while(1)
{
int i,n,m,x;
char a[20],d[20],e[20];
struct ticket *head;
printf("請輸入要使用的業務前相應的數字:\t");
scanf("%d",&i);
if(i==7)
break;
else
switch(i)
{
case 1: printf("輸入錄入的個數:\t");
scanf("%d",&n);;
head=creat(n);
break;
case 2:
insert(head);
break;
case 3:
printf("輸入要刪除的班次:\t");
scanf("%s",e);
del(head,e);
break;
case 4:
print(head);
break;
case 5:printf("1、按班次查詢:\t");
printf("2、按始發站查詢:\t");
printf("3、按日期查詢:\t");
scanf("%d",&x);;
switch(x)
{
case 1:printf("輸入要查詢班次:\t");
scanf("%s",d);
chaxun1(head,d);break;
case 2:printf("輸入要查詢的始發站(請查詢後輸入有效的始發站):\t");
scanf("%s",d);
chaxun2(head,d);break;
case 3:printf("輸入要查詢的日期(格式0101):\t");
scanf("%d",&m);;
chaxun3(head,m);break;
}
break;
case 6:
printf("訂票輸入1,退票輸入2:\t");
scanf("%d",&m);;
printf("輸入你要訂或退的班次:\t");
scanf("%s",a);
book(head,a,m);
break;
}
}
}
看了這個C語言版的車票訂購查詢系統吧,想必樓主會非常明白什麼叫分塊了,一個三百多行的程序 ,而主函數就佔了50行左右,函數功能分工明確,各負其職,連在一起就可以組成一個有著增、刪、改、查等功能的一個簡單系統。分工其實就是把某一功能的代碼放一起,避免重復使用,也使主函數簡單明了。樓主覺得呢?
Ⅳ 俄羅斯方塊c語言編程
之前學編程的時候寫過俄羅斯方塊,代碼還在
Ⅳ PLC用什麼語言編程
1引言 在PLC中有多種程序設計語言,如梯形圖語言、布爾助記符語言、功能表圖語言、功能模塊圖語言及結構化語句描述語言等。梯形圖語言和布爾助記符語言是基本程序設計語言,它通常由一系列指令組成,用這些指令可以完成大多數簡單的控制功能,例如,代替繼電器、計數器、計時器完成順序控制和邏輯控制等。通過擴展或增強指令集,它們也能執行其它的基本操作。功能表圖語言和語句描述語言是高級的程序設計語言,它可根據需要去執行更有效的操作,例如,模擬量的控制,數據的操縱,報表的報印和其他基本程序設計語言無法完成的功能。功能模塊圖語言採用功能模塊圖的形式,通過軟連接的方式完成所要求的控制功能,它不僅在PLC中得到了廣泛的應用,在集散控制系統的編程和組態時也常常被採用。由於它具有連接方便、操作簡單、易於掌握等特點,為廣大工程設計和應用人員所喜愛。 2 常用的程序設計語言分類
根據PLC應用范圍,程序設計語言可以組合使用,常用的程序設計語言有以下幾種:
(1) 梯形圖(Ladder Diagram)程序設計語言
梯形圖程序設計語言是用梯形圖的圖形符號來描述程序的一種程序設計語言。採用梯形圖程序設計語言,這種程序設計語言採用因果關系來描述事件發生的條件和結果,每個梯級是一個因果關系。在梯級中,描述事件發生的條件表示在左面,事件發生的結果表示在右面。
梯形圖程序設計語言是最常用的一種程序設計語言,它來源於繼電器邏輯控制系統的描述。在工業過程式控制制領域,電氣技術人員對繼電器邏輯控制技術較為熟悉。因此,由這種邏輯控制技術發展而來的梯形圖受到歡迎,並得到廣泛的應用。
梯形圖程序設計語言的特點是:
·與電氣操作原理圖相對應,具有直觀性和對應性;
·與原有繼電器邏輯控制技術相一致,易於撐握和學習;
·與原有的繼電器邏輯控制技術的不同點是:梯形圖中的能流(Power FLow)不是實際意義的電流,內部的繼電器也不是實際存在的繼電器,因此應用時需與原有繼電器邏輯控制技術的有關概念區別對待;
·與布爾助記符程序設計語言有一一對應關系,便於相互轉換和程序檢查。
(2) 布爾助記符(Boolean Mnemonic)程序設計語言
布爾助記符程序設計語言是用布爾助記符來描述程序的一種程序設計語言。布爾助記符程序設計語言與計算機中的匯編語言非常相似,採用布爾助記符來表示操作功能。
布爾助記符程序設計語言具有下列特點:
·採用助記符來表示操作功能,具有容易記憶,便於撐握的特點;
·在編程器的鍵盤上採用助記符表示,具有便於操作的特點,可在無計算機的場合進行編程設計;
·與梯形圖有一一對應關系,其特點與梯形圖語言基本類同。
(3) 功能表圖(Sepuential Function Chart)程序設計語言
功能表圖程序設計語言是用功能表圖來描述程序的一種程序設計語言。它是近年來發展起來的一種程序設計語言。採用功能表圖的描述,控制系統被分為若干個子系統,從功能入手,使系統的操作具有明確的含義,便於設計人員和操作人員設計思想的溝通,便於程序的分工設計和檢查調試。功能表圖程序設計語言的特點是:
·以功能為主線,條理清楚,便於對程序操作的理解和溝通;
·對大型的程序,可分工設計,採用較為靈活的程序結構,可節省程序設計、調試時間;
·常用於系統規模校大、程序關系較復雜的場合;
·只有在活動步的命令和操作被執行,對活動步後的轉換進行掃描,因此整個程序的掃描時間較其他程序編制的程序掃描時間要短得多。
功能表圖來源於佩特利(Petri)網,由於它具有圖形表達方式,能比較簡單清楚地描述並發系統和復雜系統的所有現象,並能對系統中存在的象死鎖、不安全等反常現象進行分析和建模,在模型的基礎上可以直接編程,因此得到了廣泛的應用。近幾年推出的可編程式控制制器和小型集散控制系統中也已提供了採用功能表圖描述語言進行編程的軟體。(4) 功能模塊圖(Function Block)程序設計語言
功能模塊圖程序設計語言是採用功能模塊來表示模塊所具有的功能,不同的功能模塊有不同的功能。它有若干個輸入端和輸出端,通過軟連接的方式,分別連接到所需的其它端子,完成所需的控制運算或控制功能。功能模塊可以分為不同的類型,在同一種類型中,也可能因功能參數的不同而使功能或應用范圍有所差別,例如,輸入端的數量、輸入信號的類型等的不同使它的使用范圍不同。由於採用軟連接的方式進行功能模塊之間及功能模塊與外部端子的連接,因此控制方案的更改、信號連接的替換等操作可以很方便實現。功能模塊圖程序設計語言的特點是:
·以功能模塊為單位,從控制功能入手,使控制方案的分析和理解變得容易;
·功能模塊是用圖形化的方法描述功能,它的直觀性大大方便了設計人員的編程和組態,有較好的易操作性;
·對控制規模較大、控制關系較復錄的系統,由於控制功能的關系可以較清楚地表達出來,因此,編程和組態時間可以縮短,調試時間也能減少;
·由於每種功能模塊需要佔用一定的程序內存,對功能模塊的執行需要一定的執行時間,因此,這種設計語言在大中型PLC和集散控制系統的編程和組態中才被採用。
(5) 結構化語句(Structured Text)描述程序設計語言
結構化語句描述程序設計語言是用結構化的描述語句來描述程序的一種程序設計語言。它是一種類似於高級語言的程序設計語言。在大中型的可編程序控制器系統中,常採用結構化語句描述程序設計語言來描述控制系統中各個變數的關系。它也被用於集散控制系統的編程和組態。
結構化語句描述程序設計語言採用計算機的描述語句來描述系統中各種變數之間的運算關系,完成所需的功能或操作。大多數製造廠商採用的語句描述程序設計語言與BASIC語言、PASCAL語言或C語言等高級語言相類似,但為了應用方便,在語句的表達方法及語句的種類等方面都進行了簡化。
結構化程序設計語言具有下列特點:
·採用高級語言進行編程,可以完成較復雜的控制運算;
·需要有一定的計算機高級程序設計語言的知識和編程技巧,對編程人員的技能要求較高,普通電氣人員難以完成。
·直觀性和易操作性等較差;
·常被用於採用功能模塊等其他語言較難實現的一些控制功能的實施。
部分PLC的製造廠商為用戶提供了簡單的結構化程序設計語言,它與助記符程序設計語言相似,對程序的步數有一定的限制。同時,提供了與PLC間的介面或通信連接程序的編制方式,為用戶的應用程序提供了擴展餘地。 3 PLC程序設計語言應用實例
溫度控制是許多機器的重要的構成部分。它的功能是將溫度控制在所需要的溫度范圍內,然後進行工件的加工與處理。PID控制系統是得到廣泛應用的控制方法之一,下面較為詳盡地介紹了PID溫度控制的PLC程序設計實例。
(1) 系統組成
本套系統採用Omron的PLC與其溫控單元以及Pro-face的觸摸屏所組成。系統包括CQM1H-51、擴展單元TC-101、GP577R以及探溫器、加熱/製冷單元。
(2) 觸摸屏參數設置
設002代表現在的溫度,而102表示輸出的溫度。如按下開始設置就可設置參數。需要設置的參數有6個,分別是比例帶、積分時間、微分時間、滯後值、控制周期、偏移量。它們在PLC的地址與一些開關的地址如下:
比例帶 : DM51 積分時間 : DM52
微分時間 : DM53 滯後值 : DM54
控制周期 : DM55 偏移量 : DM56
數據刷新 : 22905
(3) PLC程序
002:PID的輸入字
102:PID的輸出字
[NETWORK]
Name="Action Check" //常規檢查
[STATEMENTLIST]
LD 253.13 //常ON.
OUT TR0
CMP 002 #FFFF
//確定溫控單元是否完成初始化
AND NOT 255.06 //等於
OUT 041.15 //初始化完成
LD TR0
AND 041.15
OUT TR1
AND NOT 040.10
//不在參數設置狀態
MOV DM0050 102
//將設置溫度DM50傳送給PID輸出字
LD TR1
MOV 002 DM0057
//將002傳送到DM57
[NETWORK]
Name="Setting Start" //設置開始
[STATEMENTLIST]
LD 253.13
OUT TR0
AND 229.05
//觸摸屏上的開始設置開關
DIFU 080.05 //設置微分
LD TR0
AND 041.15
AND 080.05
SET 040.01 //開始設置標志位1
SET 040.10 //開始設置標志位2
[NETWORK]
Name="Poportion" //比例帶設置
[STATEMENTLIST]
LD 040.01
OUT TR0
AND NOT 042.01
MOV #C110 102
//讀輸出邊與輸入邊的比例帶
CMP 002 #C110
//比較輸入字是否變成C110
AND 255.06 //等於
SET 042.01 //設置比例帶標志
LD TR0
AND 042.01
MOV DM0051 102
//將比例帶的設定值寫入輸出字
CMP 002 DM0051 //是否寫入
AND 255.06
SET 040.01 //復位標志1
RSET 042.01 //復位比例帶標志
SET 040.02 //向下繼續設置標志
[NETWORK]
Name="Integral"//積分時間設置
[STATEMENTLIST]
LD 040.02
OUT TR0
AND NOT 042.02
MOV #C220 102
//讀輸出邊與輸入邊的積分
CMP 002 #C220
//比較輸入字是否變成C220
AND 255.06
SET 042.02 //設置積分標志
LD TR0
AND 042.02
MOV DM0052 102
//將積分的設定值寫入輸出字
CMP 002 DM0052 //是否寫入
AND 255.06
RSET 040.02
RSET 042.02
SET 040.03 //向下繼續設置標志
[NETWORK]
Name="differential"//微分時間設置
[STATEMENTLIST]
LD 040.03
OUT TR0
AND NOT 042.03
MOV #C330 102
//讀輸出邊與輸入邊的微分
CMP 002 #C330
//比較輸入字是否變成C330
AND 255.06
SET 042.03 //設置微分標志
LD TR0
AND 042.03
MOV DM0053 102
//將微分的設定值寫入輸出字
CMP 002 DM0053 //是否寫入AND 255.06
RSET 040.03
RSET 042.03
SET 040.04 //向下繼續設置標志
[NETWORK]
Name="Hysteresis"//滯後值設置
[STATEMENTLIST]
LD 040.04
OUT TR0
AND NOT 042.04
MOV #C440 102
//讀輸出邊與輸入邊的滯後值
CMP 002 #C440
//比較輸入字是否變成C440
AND 255.06
SET 042.04 //設置滯後值標志
LD TR0
AND 042.04
MOV DM0054 102
//將滯後值的設定值寫入輸出字
CMP 002 DM0054 //是否寫入
AND 255.06
RSET 040.04
RSET 042.04
SET 040.05 //向下繼續設置標志
[NETWORK]
Name="Period" //控制周期設置
[STATEMENTLIST]
LD 040.05
OUT TR0
AND NOT 042.05
MOV #C550 102
//讀輸出邊與輸入邊的控制周期
CMP 002 #C550
//比較輸入字是否變成C550
AND 255.06
SET 042.05 //設置控制周期標志
LD TR0
AND 042.05
MOV DM0055 102
//將控制周期的設定值寫入輸出字
CMP 002 DM0055 //是否寫入
AND 255.06
RSET 040.05
RSET 042.05
SET 040.06 //向下繼續設置標志
[NETWORK]
Name="Shift" //偏移量設置
[STATEMENTLIST]
LD 040.06
OUT TR0
AND NOT 042.06
MOV #C660 102
//讀輸出邊與輸入邊的偏移量
CMP 002 #C660
//比較輸入字是否變成C660
AND 255.06
SET 042.06 //設置偏移量標志
LD TR0
AND 042.06
MOV DM0056 102
//將偏移量的設定值寫入輸出字
CMP 002 DM0056 //是否寫入
AND 255.06
RSET 040.06
RSET 042.06
SET 040.00
[NETWORK]
Name="Return" //返回
[STATEMENTLIST]
OUT TR0
AND NOT 042.00
MOV #C070 102 //讀輸入邊的處理值
CMP 002 #C070 //比較輸入字變成C070
AND 255.06
SET 042.00 //返回標志
LD TR0
AND 042.00
MOV DM0050 102
//將設定溫度值寫入輸出字
RSET 040.00
RSET 042.00
RSET 040.10 4 結束語
以上是PID溫度控制的PLC程序設計實例,經過反復試驗,該系統可以維持溫度在1℃之間變化,保證了好的生產狀況,減少了不合格品發生的幾率。
Ⅵ 塊語言編程游戲最後一關怎麼過
荒原珠.珍稀
兔女郎
薄紗外套
星河襪圈
吊帶網襪
箏跡.黑
兔女郎頭飾
豪門耳環
翅影披風
骨牙項鏈
金屬手圈
十字架手鏈
柳釘手套
薄荷煙
真皮錢包
白色腰帶
夢紗
玫瑰花
白領單肩包
曼珠沙華
兔球球
月千重
月香渺
技能最好滿級,我也是試了幾次就得到s了
Ⅶ C語言編程
加個while循環或for循環,例如:
int n=1;
while(n++<N){
/*
這里添加你的代碼
*/
}
或者
for(int i=0;i<N;i++){
/*
這里添加你的代碼
*/
}
上面的N表示你要使用你那個程序的次數,祝你編程愉快!
Ⅷ 用C語言編程
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void FunctionTest( double **a , int row)
{
int i=0, k=0, j=0;
double dMinDistance=0, dt=0, t=0;
for ( i=2; i < row-1; i++ )
{
k=i;
for ( j=i+1; j < row; j++ )
{
if ( sqrt(pow(a[k][0], 2) + pow(a[k][1], 2)) > sqrt( pow(a[j][0], 2) + pow(a[j][1], 2) ) )
{
k=j;
}
}
if ( k!= i)
{
t=a[i][0];a[i][0]=a[k][0];a[k][0]=t;
t=a[i][1];a[i][1]=a[k][1];a[k][1]=t;
}
}
dMinDistance = sqrt( pow( a[0][0]-a[2][0], 2) + pow(a[0][1]-a[2][1],2) );
for ( i=2; i<row-1; i++ )
{
dt= sqrt( pow( a[i][0]-a[i+1][0],2) + pow( a[i][1]-a[i+1][1], 2 ) );
if ( dMinDistance < dt )
{
dMinDistance = dt;
}
}
dt = sqrt( pow( a[1][0]-a[row-1][0], 2) + pow(a[1][1]-a[row-1][1],2) );
dMinDistance = ( dMinDistance < dt ) ? dt : dMinDistance;
printf( "\n小羊最小的跨越距離為: %lf\n", dMinDistance );
}
int main()
{
int n=0, i=0;
double **a;
printf( "請輸入整數n:");
scanf( "%d", &n );
if ( n >0 )
{
a = (double **) malloc( sizeof(double*) * n );
}
for ( i=0; i < n; i++ )
{
a[i] = (double*)malloc( sizeof(double) * 2);
switch ( i )
{
case 0:
printf( "\n請輸入小羊的坐標X Y(空格分隔):");
break;
case 1:
printf( "\n請輸入娃娃坐標X Y(空格分隔):");
break;
default:
printf( "\n請輸入石頭坐標X Y(空格分隔):");
break;
}
scanf( "%lf%lf", &a[i][0], &a[i][1]);
printf( "\n");
}
FunctionTest(a, n );
for ( i=0; i <n; i++ )
{
free(a[i]);
}
free(a);
return 0 ;
}
Ⅸ 作為一個語言編程的初學者,有哪些問題是要注意的
當你第一次學習編程時,很快就會撞上這么個問題。你覺得你已配置好了一切,查了又查覺得萬無一失,幻想著是該「見證奇跡的時刻」,卻突然被bug打了臉。如何修改,你毫無頭緒,那無從下手的挫敗感,讓你一次次的想要放棄。新手學習編程應該注意哪些問題呢,千鋒哈爾濱小編就來給你介紹下
這種經歷對任何一個水準的程序員而言,都再正常不過了。有過這種經歷,並不代表你的智商,技術悟性,或你和編程的適合度有任何問題。不管你是編程新兵,還是程序大牛,你都會遇到這樣的經歷。
學習方法決定了你跟別人之間提升的差距,有些人會說,我都做這行幾年了,為什麼別人都上萬的工資了,我還是只有幾千塊呢。這差距的來源就在於是否擁有好的學習方法,有些人因為學習方法不對,覺得越學越累,最終導致放棄,有些人也會因為學習方向出錯了,越學越偏,最終也偏離了前端這塊,所以一定要注意自己的學習方法,每個人成功的原因都是堅持加對的方向還有良好的學習方法,失敗的原因歸根到底都是方法出現了問題,所以初學者一定要找專業人士引導。
歡迎大家在評論區評論留言,小編會及時給大家解答疑惑的。