//
// main.m
// CLesson03
//
// Created by 康 亮亮 on 15/10/9.
// Copyright (c) 2015年 Darling.com. All rights reserved.
// while循環、do..while 循環、for循環
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
// printf("志南是大帥哥!");
#pragma mark while循環
// while (條件表達式(滿足循環的條件)) {
// 語句;(循環體)
// }
//
// int num = 0; // 循環變量
// while (num < 10) { // 判斷循環變量是否滿足循環條件
// printf("志南是大帥哥!目前列印第%d次\n", num);
// num++; // 循環增量
// }
// 練習:求 1+2+3+4+5的和,用while循環實作
// 1.定義一個循環變量,同時可以充當加數
// int num = 0;
// // 2.定義一個變量,儲存和
// int sum = 0;
// // 3.開始循環,利用循環增量,依次将循環變量(也就是加數加一)
// while (num < 5) {
// num++;
// sum = sum + num;
// }
// printf("sum = %d\n", sum);
// 使用循環列印【1,100】的數
// int num = 1;
//
// while (num <= 100) {
// printf("%d\n",num);
// num++;
// }
// 使用循環列印【1,100】之間7的倍數
// int num = 1;
//
// while (num <= 100) {
// int temp = num % 7;
// if (temp == 0) {
// printf("%d\n",num);
// }
// num++;
// }
// 使用循環列印【1,100】之間個位是7的數
// int num = 1;
//
// while (num <= 100) {
// int temp = num % 10;
// if (temp == 7) {
// printf("%d\n",num);
// }
// num++;
// }
// 使用循環列印【1,100】之間十位是7的數
// int num = 1;
//
// while (num <= 100) {
// int temp = num / 10;
// if (temp == 7) {
// printf("%d\n",num);
// }
// num++;
// }
#pragma mark 随機數
// arc4random();用來産生一個随機數的函數
// int a = arc4random(); // 使用系統函數産生一個随機數,并交給變量a儲存
// printf("a = %d\n", a);
// int a = arc4random() % 10; // 産生的數字不會超過10,因為用10對随機數取餘數操作,它的餘數永遠不會超過10,餘數不為負數
// printf("a = %d\n", a);
// 産生一個【0,10】的随機數
// int a = arc4random() % 11;
// printf("a = %d\n", a);
// 産生一個【10,20】的随機數
// int b = arc4random() % (10 + 1) + 10;
// printf("b = %d\n", b);
// 産生一個【15,20】的随機數
// 要取一個【a,b】範圍内的随機數,公式是:arc4random() % (b - a + 1) + a;
// int b = arc4random() % (15 + 1) + 15;
// printf("b = %d\n", b);
// 練習:從控制台接收一個數n,随機産生【0,n】範圍内的随機數
// int n ;
//
// printf("請任意輸一個數:");
// scanf("%d", &n);
//
// int c = arc4random() % (n + 1) ;
// printf("c = %d\n", c);
// 使用者從控制台輸入一個n,用while列印n個随機數(範圍為[10~30])。
// 1.定義一個變量,用來盛放使用者輸入的數字
// int n ;
// printf("請任意輸一個數:");
// // 2.使用輸入函數,來保護使用者輸入的數字
// scanf("%d", &n);
// // 3.使用while循環來控制列印次數
// // 3.1定義一個循環增量
// int temp =0;
// // 3.2判斷循環增量是否滿足循環條件
// while ( temp < n) {
// // 3.3儲存生成的随機數
// int num = arc4random() % (20 + 1) + 10 ;
// printf("目前第%d次列印,随機數是%d\n", temp, num);
// temp++;
// }
//
//使用者從控制台輸⼊一個n,用while列印n個随機數(範圍為[30~70]), 找出n個随機數中的最大值。
// // 1.定義一個變量,用來存放使用者輸入的數字
// int n ;
// printf("請任意輸一個數:");
// // 2.使用scanf函數,來保護使用者輸入的數字
// scanf("%d", &n);
// // 3.使用while循環來控制列印次數
// // 3.1定義一個循環增量
// int temp =0;
// // 3.1.1 定義一個變量,用來儲存目前最大值
// int maxValue =0;// "駝峰命名法": 從第二個單詞開始,每個單詞的首字母大寫
// // 3.2判斷循環增量是否滿足循環條件
// while ( temp < n) {
// // 3.3儲存生成的随機數
// int num = arc4random() % (40 + 1) + 30;
// printf("目前第%d次列印,随機數是%d\n", temp, num);
// if (maxValue < num) {
// maxValue = num;
// }
// // 3.4循環變量加一
// temp++;
// }
// // 4.将生成的全部随機數逐一比較後,才能确定最大的數字,并輸出
// printf("其中最大随機數是%d\n", maxValue);
// // 1.定義一個變量,用來存放使用者輸入的數字
// int n ;
// printf("請任意輸一個數:");
// // 2.使用scanf函數,來保護使用者輸入的數字
// scanf("%d", &n);
// // 3.使用while循環來控制列印次數
// // 3.1定義一個循環增量
// int temp =0;
// // 3.1.1 定義一個變量,用來儲存目前最大值
// int maxValue =0;// "駝峰命名法": 從第二個單詞開始,每個單詞的首字母大寫
// // 3.2判斷循環增量是否滿足循環條件
// while ( temp < n) {
// // 3.3儲存生成的随機數
// int num = arc4random() % (40 + 1) + 30;
// printf("目前第%d次列印,随機數是%d\n", temp, num);
// maxValue = maxValue > num ? maxValue : num; // ?:條件運算符的巧妙使用!
// // 3.4循環變量加一
// temp++;
// }
// // 4.将生成的全部随機數逐一比較後,才能确定最大的數字,并輸出
// printf("其中最大随機數是%d\n", maxValue);
#pragma mark break和continue
// 練習:依次輸出1——50之間的數,當輸出45後,停止輸出
// // 1.定義一個循環變量
// int num = 0;
// // 2.使用while開啟循環
// while (num <= 50) {
// if (num == 45) {
// break;
// }
// num++;
// printf("%d\n",num);
// }
// 練習:依次輸出1——50個位為零的數
// int n = 0;
// while (n < 5) {
// printf("目前做了%d次\n",n);
// n++;
// }
// do{
// printf("目前做了%d次\n",n);
// n++;
// }while (n < 5);
#pragma mark for循環
// 用for列印出1~100之間7的倍數。
// for (int i = 1; i <= 100; i++) {
//
// if (i % 7 == 0) {
// printf("%d\n",i);
// }
// }
// 用for列印出1~100之間個位為7的數。
// for (int i = 1; i <= 100; i++) {
// if (i % 10 == 7) {
// printf("%d\n", i);
// }
// }
// 用for列印出1~100之間十位為7的數。
// for (int i = 1; i <= 100; i++) {
// if (i / 10 == 7) {
// printf("%d\n", i);
// }
// }
// 用for列印出1~100之間不是7的倍數并且不包含7的數。
// for (int i = 1; i <= 100; i++) {
// if (i % 7 != 0 && i % 10 != 7 && i / 10 != 7 ) {
// printf("%d\n",i);
// }
// }
#pragma mark 循環嵌套
// 第一步:列印123
// for (int i = 1; i <= 3; i ++) {
// printf("%d", i);
// }
// 第二步:列印
// for (int i = 1; i <= 3; i++) {
// for (int j = 1; j <= 3; j++) {
// printf("%d", j);
// }
// printf("\n");
//
// }
// 第三步:列印
// for (int i = 1; i <= 3; i++) { // 外層循環控制列印的行數
//
// for (int j = 1; j <= i; j++) { // 内層循環控制每行列印了多少次,和每次列印的數字是幾
// printf("%d ", j);
// }
//
// printf("\n");
//
// }
// 列印乘法口訣表
// 兩層循環,外層控制列印的行數(共9行),内層控制每行列印的次數(目前是第幾行,就列印幾次(幾列))
// for (int i = 1; i <= 9; i++) {
//
// for (int j = 1; j <= i; j++) {
// printf(" %d * %d = %-2d ", j, i, j*i); // %-2d控制長度
// }
//
// printf("\n");
// }
// 列印三個數字(0 - 9)的組合可能(組合成三位數)。
// 百位
for (int i = 1; i <= 9; i++) {
// 十位
for (int j = 0; j <= 9; j++) {
// 個位
for (int k = 0; k <= 9; k++) {
printf("%d ", i*100+j*10+k);
}
}
}
return 0;
}