C/C++ Tips

  • 小寫字母與大寫字母的ASCII之間的差值爲32。
a = getchar(); //輸入小寫字母 
b = a-32;  //將小寫字母轉化爲大寫字母
  • #include<algorithm>:algorithm意爲"算法",是C++的標準模板庫(STL)中最重要的頭文件之一,提供了大量基於迭代器的非成員模板函數。
  • 生成隨機數
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
    srand((unsighed)time(NULL));
    for(int i=0;i<10;i++){
        printf("%d ",rand%(b-a+1)+a); //生成[a,b]的隨機數(範圍較小)
        printf("%d ",(int)(round(1.0*rand()/RAND_MAX*(b-a)+a))) //生成[a,b]的隨機數(範圍較大)

    }
    return 0;
}
  • 使用scanf輸入int型數字之後(int型數字後面存在換行符,使用scanf無法接收),需要使用getchar()接收換行符。
  • 最大公約數
int gcd(int a,int b){
    if(b==0) return a;
    else return gcd(b,a%b);
}
  • 最小公倍數(假設最大公約數是d):a/d*b
  • scanf("%d%*c",&T);

    %*c作用時讀取輸入流中數字後的一個字符,並丟棄,使得後面的輸入函數不能讀到那個字符。

  • memset()函數和fill()函數的區別:

fill(),是將一塊單元賦成指定的值,也就是說任何值都可以。
fill(vec.begin(),vec.end(),val);

memset(),是將所指的某一塊內存中的每個字節的內容設置成指定得到ASCII碼,即0,1。
memset(vec,0,sizeof(vec));

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章