c/c++基本語法點學習總結
阿新 • • 發佈:2019-01-05
本學期的c/c++程式設計課程已經結束了,下面總結一下本學期的課堂所學知識:
一、資料型別:
變數需要先定義型別
- int整型:2的負32次方~2的32次方,佔4個位元組。
- double浮點型:2的負64次方~2的64次方,佔8個位元組。
- char字元型:-128~127,只有一個位元組大小。
sizeof是c語言關鍵字,用於求指定資料型別所佔記憶體的多少
二、基礎語句注意點
1.注意賦值是=,相等是==。
2.一個完整的語句必須有分號。
3.連式的計算要從右往左計算。
4.x++是c語言特色語句,表示加一。
三、基礎語句
1.選擇分支語句:
由if,,,,else if,,,,,else,,,,,,構成
這個語句是用來分類選擇的。
從鍵盤輸入一指定金額(以元為單位,如345),然後輸出支付該金額的各種面額的人民幣數量,顯示100元,50元,20元,10元,5元,1元各多少張,要求儘量使用大面額的鈔票。
輸入
一個小於1000的正整數。
輸出
輸出分行,每行顯示一個整數,從上到下分別表示100元,50元,20元,10元,5元,1元人民幣的張數
樣例輸入
735
樣例輸出
7
0
1
1
1
0
#include<iostream> #include<cmath> #include<cstring> #include<algorithm> using namespace std; int main() { int x,a,b,c,d,e,f; cin>>x; a=x/100; if(x-a*100<50){ b=0; c=(x-a*100)/20; d=(x-a*100-c*20)/10; e=(x-a*100-c*20-d*10)/5; f=(x-a*100-c*20-d*10-e*5)/1; cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl<<e<<endl<<f<<endl;} else { b=1; c=(x-a*100-b*50)/20; d=(x-a*100-b*50-c*20)/10; e=(x-a*100-b*50-c*20-10*d)/5; f=(x-a*100-b*50-c*20-10*d-e*5)/1; cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl<<e<<endl<<f<<endl; } return 0; }
2.迴圈語句:
三種:
for(start;條件;計數)
while(條件){,迴圈體,}滿足條件,執行迴圈體。
do{,,,,迴圈體,,,,,}while(條件);先執行迴圈,再判斷,判斷成立,繼續執行迴圈。
迴圈可以巢狀,迴圈巢狀的執行過程是先把內層迴圈執行完,再執行外層迴圈,往往會使複雜度翻倍。
3.陣列:
- 陣列是一片連續的儲存單元。
- 陣列下標一般預設從0開始,下標一般只能為正整數和零,有些情況下也能為負數。
- 一般要用迴圈輸入陣列。
- 二維陣列要用雙重迴圈輸入資料。
- 陣列清零可用memset,標頭檔案是cstring。
- 陣列下標必須是確定的常量。
整數奇偶排序
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int a[100001],b[100001];
int main()
{
int k,q=0,w=0;
for(int i=0;i<10;i++)
{cin>>k;
if(k%2==0) a[q++]=k;
else b[w++]=k;
}
sort(a,a+q);
for(int i=0;i<w-1;i++)
for(int j=0;j<w-1-i;j++)
if(b[j]<b[j+1]) swap(b[j],b[j+1]);
for(int i=0;i<w;i++)
cout<<b[i]<<" ";
for(int j=0;j<q;j++)
cout<<a[j]<<" ";
return 0;
}
氣泡排序:
for(int i=1;i<=n-1;i++)
for(int j=1;j<=n-i;j++)
if(a[j]>a[j+1]) swap(a[j],a[j+1]);//swap是交換用的,這個氣泡排序是從大到小排序。
4、函式
用函式可以簡化某些程式碼,比如判斷素數這個問題,每次只需要引用函式即可。大大簡化了程式碼。
函式的引用規則是引用引數,寫的函式裡只有形參,並且要定義型別。主函式裡才有實參,不需要定義型別,只需要引用函式名即可。
#include<iostream>
#include<cmath>
using namespace std;
bool prime(int x);
int main()
{
int x,y,a,b;
int ans=0;
int i;
cin>>x>>y;
a=max(x,y);
b=min(x,y);
for(i=b;i<=a;i++)
if( prime(i) )
ans++;
cout<<ans<<endl;
return 0;
}
bool prime(int x)
{
int i=2;
if(x==1||x==0) return false;
while( i<=floor(sqrt(x)) && (x%i!=0) )
i++;
if(i>floor(sqrt(x)))
return true;
return false;
}