標籤:... 逆向 python語言 一維數組 div 排列 append 判斷 std
一、程式結構
1、分類:順序結構、迴圈結構、選擇結構。
2、順序結構:程式是按照先後順序執行
3、迴圈結構;設定一個條件,當滿足時就一直在這個條件內執行某一重複內容,當不滿足時跳出,for迴圈、和while迴圈。
4、選擇結構:設定一條件,滿足時執行一種程式,不滿足時執行另一種,兩種程式只能執行其中一個。if...esle判斷語句和switch...case語句。
二、數組
1、分類:一維數組、二維數組、多維陣列
2、形式:類型說明符+數組名+[常量運算式],例如:int a[20]
3、特點:
所有元素是同一類型
元素內部排列是有順序的
元素的起始位置是0,例如:int a[10],第一個元素是a[0],最後一個元素是a[9]。
數組必須宣告類型,也就是有類型說明符
三、與數組和程式結構相關的例子
1、求一個三位元的各個係數,例如a=1234,分別求出列印出個位、十位、百位、千位係數。
此程式是由C語言編寫,只有順序結構。
#include "stdio.h"void main(){ int a = 1234; int gw,sw,bw,qw; gw = a%10; sw = a/10%10; bw = a/100%10; qw = a/1000%10; printf("個位:%d\n",gw); printf("十位:%d\n",sw); printf("百位:%d\n",bw); printf("千位:%d",qw); }
2、整數的逆排,例如a=123456,結果要求為:654321
此程式是用C語言編寫,只有順序結構和while迴圈結構
#include "stdio.h"void main(){ int a = 123456; int b = 0; while(a>0) { b = b*10 + a%10; a = a/10; } printf("b=%d\n",b); }
分析:這個需要清楚每位的係數如何求,然後逆向計算就得出逆序排列
3、在一個數組內實現移位迴圈
分析:移位迴圈就是數值的位置移動,即下一個值賦給上一個位置,最後一個值給第一個位置。
此程式是由python語言編寫,包括了三大結構。
a = []i = 0while i<20: a.append(i) i += 1print(a)j = 0while j < 10: c = a[0] i = 0 while i<19: a[i] = a[i+1] i += 1 if i == 19: a[19] = c j += 1 print(a)
4、有十個人,編號從1到10,從第一個人開始報數,從1到3報數,當報到3時,這個人蹲下,以後不再參與報數,依次迴圈,最後剩下的是哪個人?
分析;此題有三個關鍵知識點:
第一:十個人的迴圈,如果看成數組,如何讓迴圈在10以內無限次迴圈?
第二:如何有規律的改變數組內的值,即每迴圈依次就依據判斷條件改變某一位置的值
第三:如何設定有效退出迴圈條件
下面是由python語言編寫的程式,python語言中的列表可以看成是C語言中的一維數組,包括了三大程式結構
a = [1,2,3,4,5,6,7,8,9,10]i = 0gs0 = 0bs = 0while True: if a[i] != 0: bs += 1 if bs == 3: a[i] = 0 gs0 += 1 bs = 0 print(a) if gs0 == 9: break i += 1 i = i%10i = 0while i < 10: if a[i] != 0: print(‘下標是‘,i,‘的值是‘,a[i]) break i += 1
程式結構和數組