1. 程式人生 > 其它 >01. C Pro的一些基礎小隨筆

01. C Pro的一些基礎小隨筆

/* 結構化程式設計的基本結構:順序、選擇、迴圈
int main(){
  int num=100;
  float f = 3.13145;

  //printf 格式化輸出
  printf("num= %-d\n",num); //num= 100 左對齊
  printf("num= %+d\n",num); //num= +100 增加 "+" 修飾符
  printf("num= %0d\n",num); //num= 100 0填充在前
  printf("num= %08d\n",num); //num= 00000100 0填充在前,至8位
  printf("f = %.3f\n",f); //f = 3.131 保留三位小數,四捨五入

  //判斷輸入是數字還是字元,如果是字元,輸出其大寫形式
  char ch;
  scanf("%c",&ch);
  if(ch>='0' && ch<='9') {printf("%c is num\n",ch);}
  else{
    ch=(ch>='A' && ch<='Z'?ch:(ch-32));
    printf("%c is char\n",ch);
  }
  switch(ch){
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':
      printf("%c is num\n",ch);
      break; //如果不加 break ,下面的語句會繼續執行
    default: //default 不是必須的
      printf("%c is char\n",ch);
  }
}
*/


/* 6.for 迴圈走完,i 還是會執行 i++ 一次!
int main(){
  int i;
  for(i=0;i<=10;i++){}
  printf("%d\n",i);

}
*/

/* 5.全排列
int a[100];
int N;
void dfs(int s){
  int i;
  if(s==N){
    for(i=0;i<N;i++){
      printf("%d ",a[i]);
    }
    return;
  }
  for(a[s]=0;a[s]<=1;a[s]++)
    dfs(s+1);
  return;
}
int main(){
  N=4;
  dfs(0);
}
*/


/* 4.算數運算子
int main() {
  int i=7,j=5;
  printf("%d\n", -i++); // -7
  printf("%d\n",i); // i==8
  printf("%d\n", -i--); // -8
  printf("%d\n", i); // i==7
  int y = i++ + --j;
  printf("%d %d %d", y, i, j);
  int a, b, c;
  a = b = c = 10;
  printf("%d %d %d", a, b, c);
}


// 3.將字元型資料轉換為浮點型資料,注意獲取字串列表的方式 scanf("%s", &str)
int main() {
  char str[100];
  double num=0, t=10;
  int i=0;

  scanf("%s", &str);
  while (str[i] != '\0') {
    if (str[i] >= '0' && str[i] <= '9') {
      if (t == 10) {
        num = num * t + str[i] - 48;
      }
      else {
        num += (str[i] - 48) * t;
        t = 0.1 * t;
      }
    }
    if (str[i] == '.') { t = 0.1; }
    i++;
  }
  if (str[0] == '-')
  {
    num = 0 - num;
  }
  printf("%.5f", num);

}

int main(void) {
  char str[10];
  int i=0,j=0;
  char c1 = 'o', c2 = 'y';
  char q=' ';
  putchar('\102');putchar(c1);putchar(c2);
  while (q != 'q') {
    q = getchar();
    //putchar(q);
    str[i] = q;
    i++;
  }
  for (j = 0; j < 10; j++) printf("%c", str[j]);
}

/* 2.測試全域性變數的作用域,及特殊字元
void pf() {
  int mm = 10;
  printf("mm = %d\n", mm);
}

# define mm 100
int main() {
  printf("mm = %d\n", mm);
  pf();

  printf("ab c\t de\rf\tg\n");
  printf("h\ti\b\bj k");
}
*/


/* 1.char 和 int 可以實現自動轉換
int main() {
  char x;
  printf("Enter your char:");
  scanf("%c", &x);
  printf("%d", int(x));

  if (x >= 'A' && x <= 'Z') {
    x = x + 32;
  }
  printf("\n%c", x);

}
*/