1. 程式人生 > >c/c++基本語法點學習總結

c/c++基本語法點學習總結

本學期的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;
}