蘋果軟件 做ppt模板下載網(wǎng)站有哪些seo崗位
標(biāo)志法通常用來檢查或者進(jìn)行過程中一些狀態(tài)變化。
有一些是為了觀察變化,舉出一些以往代碼的例子:
1.找出一串?dāng)?shù)字中沒有重復(fù)出現(xiàn)過的數(shù)字
#include <stdio.h>
int main()
{int arr[1000] = { 0 };int n = 0;scanf("%d", &n);int i = 0;for (i = 0; i < n; i++){scanf("%d", &arr[i]);}int j = 0;for (i = 0; i < n; i++){int flag = 1;for (j = 0; j < n; j++){if (i != j){if (arr[i] == arr[j]){flag = 0;}}}if (flag){printf("%d ",arr[i]);}}return 0;
}
這里的flag就是用來檢查是否有相同數(shù)字的,如果有相同的數(shù)字,就將檢查結(jié)果判為0,如果沒有相同的數(shù)字,檢查結(jié)果就為1。這里便是用flag來觀察是否有相同數(shù)字的。
2.判斷素?cái)?shù)
這里的flag用來檢測(cè)i是否被某個(gè)數(shù)整除,如果被整除,flag就變成0,一直不被整除,說明i是素?cái)?shù)。這里的flag就是用來觀察并判斷i是否被整除。
有時(shí)候標(biāo)志法還可以進(jìn)行一些中途的變化,建立一個(gè)標(biāo)志,有時(shí)候能完成一些變量的指定變化,省略很多分支。
比如,洛谷題壓縮技術(shù)2.0
#include <stdio.h>
#include <string.h>
int main()
{char str[200] = { 0 };char arr[200] = { 0 };scanf("%s", arr);int n = strlen(arr);strcat(str, arr);int i = 0;for (i = 2; i <= n; i++){scanf("%s", arr);strcat(str, arr);}printf("%d ", n);char* p = str;char ch = *p;int count = 0;while (*p != '\0'){if (*p == ch){count++;}if (*p != ch){printf("%d ", count);count = 1;ch = *p;}p++;}printf("%d ", count);return 0;
}
這里的ch在起初被賦值為數(shù)組的首元素,當(dāng)連續(xù)的元素的值發(fā)生變化時(shí),ch就被賦值為變化后的值。