循環程序設計
❶ c語言程序設計while循環
getchar 函數讀入一個字元 輸入abcde讀入a
______________________
j=j+i
10: 10+0
9: 10+9
8: 19+8
7: 27+7
6: 34+6
5: 40+5
4: 45+4
3: 49+3
i<=2: 跳出循回環輸出答j
❷ c語言程序設計for循環
這個循環抄的初值為i=0,j=1,循環的條件是i<=j+1,這時比較判斷:i=0<=1+1是成立的,所以進入循環,列印出i的值0,然後執行i+=2和j--,執行後i=2,j=0,這時判斷i=2<=0+1是不成立的,所以跳出循環,程序結束。算起來,循環體的執行次數確實只有一次,故選c。
❸ 採用循環程序設計(C語言),在屏幕中央輸出以下圖形
#include"stdio.h"
intmain(intargc,char*argv[]){
chari,j,k,t,x,ch;
for(i=10;i>0;i--){
for(j=10;j>i;putchar(''),j--);
for(j=i+i-1;j>0;putchar('*'),j--);
putchar(' ');
}
printf(" ");
for(k=0,i=1;i>0;++k<6?i++:i--){
for(j=0;j++<10-i;putchar(''));
for(ch='A',t=i+i-1,x=j=0;j++<t;putchar(++x<=t/2?ch++:ch--));
putchar(' ');
}
return0;
}
運行回結答果:
❹ 循環結構程序設計
順序結構、復選擇結構、循制環結構。順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。選擇結構用於判斷給定的條件,根據判斷的結果判斷某些條件,根據判斷的結果來控製程序的流程。循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構 。循環結構可以看成是一個條件判斷語句和一個向回轉向語句的組合。
❺ 微機原理與匯編語言循環程序設計
data segment
str db "$"
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
;按要求對字元串進行變換
mov cx,50
mov si,0
loop1:
cmp str[si],'0'
jl m1
cmp str[si],'9'
jg m2
mov str[si],'*'
jmp m1
m2:
cmp str[si],'a'
jl m1
cmp str[si],'z'
jg m1
sub str[si],32
jmp m1
m1:
inc si
loop loop1
;輸出變專換後的屬字元串
mov dx,offset str
mov ah,09h
int 21h
mov ah,4ch
int 21h
code ends
end start
❻ 循環程序設計
初始抄化學生資料;
遍歷襲學生資料{
if(學生[i].成績 < 60)
s1.add(學生[i]);
else if(學生[i].成績 > 60 && 學生[i].成績 < 80)
s2.add(學生[i]);
else if(學生[i].成績 > 80)
s3.add(學生[i]);
}
❼ for的for循環(計算機編程)
for( ; ; )裡面是3個語句,兩個分號。第一個語句是開始前執行,第二個語句是判斷真假,如果真,就執行後面(大括弧內)的代碼。第三個語句是每次執行完畢後執行的東西,通常第三個語句使用i++表示i=i+1的意思,用來遞增自變數i。
比如:
最常用的 for(inti=0;i<10;i++){//i-=3跟i=i-3效果相同printf(i=%d
,i);}遞減式for for(inti=10;i>0;i-=3){//i-=3跟i=i-3效果相同printf(i=%d
,i);}遞增式for for(inti=10;i>0;i+=3){//i+=3跟i=i+3效果相同printf(i=%d
,i);} 語法:
(1)for循環 for(inti=0;i<10;i++){statements;} 語法
for(initialize;test;increment){
statement
}
示例
例1:循環1到100的值 <scripttype=text/javascript>varValue=0;for(vara=1;a<=100;a++){Value=Value+a;Value+=<br>;}document.write(Value);</script>例2:js輸出九九乘法表 <scripttype=text/javascript>varbdqnyhb=for(vari=1;i<=9;i++){for(varj=1;j<=i;j++){bdqnyhb+=i+×+j+=+i*j+;}bdqnyhb+=<br>;}document.write(bdqnyhb);</script>JS另有for..in..語句。 Java的for語句形式有兩種:一種是和C語言中的for語句形式一樣,另一種形式用於在集合和數組之中進行迭代。有時候把這種形式稱為增強型的for(enhanced for)語句,它可以使循環更加緊湊和容易閱讀。
示例
為了演示,參考下面的數組,它保存數字1到10:
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
下面的程序EnhancedForDemo使用增強for循環遍歷這個數組: publicclassEnhancedForDemo{publicstaticvoidmain(String[]args){int[]numbers={1,2,3,4,5,6,7,8,9,10};for(intitem:numbers){System.out.println(Countis:+item);}}}在這個例子中,變數item保存從數字數組獲得的當前值。
Count is :1
Count is :2
Count is :3
Count is :4
Count is :5
Count is :6
Count is :7
Count is :8
Count is :9
Count is :10
建議在情況允許的條件下,使用for語句的這種形式,而不使用其一般形式。 for 循環變數:
=初始值 to 終止值 do 語句內容
或者
for 循環變數:=初始值 downto 終止值 do 語句內容
其他內容與C的相同,此處省略。
循環語句的含義在於從「控制變數」等於「初值」開始,循環到「終值」,當「控制變數」的值:
(1) to:大於終值時,終止循環。這里相當於BASIC中STEP(步長)=1的情況。
(2) downto:小於終值時,終止循環。這里相當於BASIC中STEP(步長)=-1的情況。
示例一(to)
按順序輸出1~100: fori:=1tondowrite(i,'');輸出值為:1 2 3 4 5 6 …… 98 99 100
示例二(downto)
按倒序輸出1~100 forI:=100downto1dowrite(i,'');輸出值為:100 99 98 97 …… 3 2 1
注意:單個語句可直接用for循環變數:=初始值 to 終止值 do 語句內容,但有多個語句時要加
「begin「和」end「。
格式為:
for 循環變數:=初始值 to/downto 終止值 do
語句內容1;
語句內容2;
……
語句內容n;
end; FOR 循環變數=初始值 TO 終止值 STEP步長
語句內容
NEXT循環變數
其他內容與C的相同,此處亦省略。
C語言語法
只要指定條件為 true 都執行語句塊。
for(initialization; test; increment)
statements
參數
initialization
必選項。一個表達式。該表達式只在執行循環前被執行一次。
test
必選項。一個 Boolean表達式。如果 test 是 true,則 statement 被執行。如果 test 是 false,則循環結束。
increment
可選項。一個表達式。在每次經過循環的最後執行該遞增(減)表達式。
statements
可選項。test 是 true 時,要執行的一個或多個語句。可以是復合語句。
說明
循環要執行確定的次數,通常使用for循環。
示例
下面的例子示範了一個for循環。
/* 在開始時 i 被設為 0,並在每次重復的最後被增加 1。
在循環重復前,
如果 i 不小於 10,則循環結束。*/
var myarray = new Array();
for(i = 0; i < 10; i++) {
myarray= i;
在c語言的解釋是:
for:循環語句。
作用
循環
它的一般形式為:
for(<初始化>;<條件表達式>;<增量>)
語句
初始化總是一個賦值語句,它用來給循環控制變數賦初值;條件表達式是一個關系表達式,它決定什麼時候退出循環;增量定義循環控制變數每循環一次後按什麼方式變化。這三個部分之間用;分開。
例如:
for(i=1;i<=10;i++)
語句;
上例中先給i賦初值1,判斷i是否小於等於10,若是則執行語句,之後值增加1。再重新判斷,直到條件為假,即i>10時,結束循環。
注意:
(1).for循環中語句可以為語句體,但要用{和}將參加循環的語句括起來。
(2).for循環中的初始化、條件表達式和增量都是選擇項,即可以預設,但;不能預設。省略了初始化,表示不對循環控制變數賦初值。省略了條件表達式,則不做其它處理時便成為死循環。省略了增量,則不對循環控制變數進行操作,這時可在語句體中加入修改循環控制變數的語句。
(3).for循環可以有多層嵌套。
例如:
for(;;) 語句;
for(i=1;;i+=2) 語句;
for(j=5;;) 語句;
這些for循環語句都是正確的。
FOR
field of regard 的縮寫LOGO中的FOR
visal basic 示例:
Private Sub Command1_Click()Dim s(1 To 1000) As Singles(1) = 0s(2) = 1For i = 3 To 1000s(i) = 1For j = 2 To i - 1If i Mod j = 0 Then s(i) = 0Next jIf s(i) = 1 Then Print iNext iEnd Sub
(版本不同可能輸入方式不同) 控制結構的條件表達式結果可以是任何值,Lua認為false和nil為假,其它值為真。
for語句有兩大類:
數值for循環
格式:
for var=exp1,exp2,exp3 do
loop-part
end
for將用exp3作為step從exp1(初始值)到exp2(終止值),執行loop-part。其中exp3可以省略,默認step=1
有幾點需要注意:
1. 三個表達式只會被計算一次,並且是在循環開始前。
for i=1,f(x) do
print(i)
end
for i=10,1,-1 do
print(i)
end
第一個例子f(x)只會在循環前被調用一次。
2. 控制變數var是局部變數自動被聲明,並且只在循環內有效.
for i=1,10 do
print(i)
end
max = i -- probably wrong! 'i' here is global
如果需要保留控制變數的值,需要在循環中將其保存
-- find a value in a list
local found = nil
fori=1,a.n do
if a[i] == value then
found = i -- save value of 'i'
break
end
end
print(found)
3. 循環過程中不要改變控制變數的值,那樣做的結果是不可預知的。如果要退出循環,使用break語句。
范型for循環
-- print all values of array 'a'
格式:for i,v in ipairs(a) do print(v) end
范型for遍歷迭代子函數返回的每一個值。
再看一個遍歷表key的例子:
-- print all keys of table 't'
for k in pairs(t) do print(k) end
范型for和數值for有兩點相同:
1. 控制變數是局部變數
2. 不要修改控制變數的值
再看一個例子,假定有一個表:
days = {Sunday, Monday, Tuesday, Wednesday,
Thursday, Friday, Saturday}
想把對應的名字轉換成星期幾,一個有效地解決問題的方式是構造一個反向表:
revDays = {[Sunday] = 1, [Monday] = 2,
[Tuesday] = 3, [Wednesday] = 4,
[Thursday] = 5, [Friday] = 6,
[Saturday] = 7}
下面就可以很容易獲取問題的答案了:
x = Tuesday
print(revDays[x]) --> 3
我們不需要手工,可以自動構造反向表
revDays = {}
for i,v in ipairs(days) do
revDays[v] = i
end
格式
(FOR 循環變數啟動數據終止數據[循環體]步長)
若步長為1,則步長可省略,圓括弧可去掉。
當循環結束時,循環變數的值為最後一次符合啟動數據至終止數據之間的數值。不是第一次不符合值。
例:FOR X 1 5 [PR 'A] PR :X
顯示: A
A
A
A
A
5
並不是5個A和一個6 而是5個A和一個5
這種現象被稱為:BAG現象 介紹
對一組文件中的每一個文件執行某個特定命令。
FOR %variable IN (set) DO command [command-parameters]
%variable 指定一個單一字母可替換的參數。
(set) 指定一個或一組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters
為特定命令指定參數或命令行開關。
在批處理文件中使用 FOR 命令時,指定變數請使用 %%variable而不要用 %variable。變數名稱是區分大小寫的,所以 %i 不同於 %I.如果命令擴展名被啟用,下列額外的 FOR 命令格式會受到支持:
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的
FOR 語句。如果在 /R 後沒有指定目錄,則使用當前
目錄。如果集僅為一個單點(.)字元,則枚舉該目錄樹。
FOR /L %variable IN (start,step,end) DO command [command-parameters]
該集表示以增量形式從開始到結束的一個數字序列。
因此,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生
序列 (5 4 3 2 1)。
FOR /F [options] %variable IN (file-set) DO command [command-parameters]
FOR /F [options] %variable IN (string) DO command [command-parameters]
FOR /F [options] %variable IN ('command') DO command [command-parameters]
或者,如果有 usebackq 選項:
FOR /F [options] %variable IN (file-set) DO command [command-parameters]
FOR /F [options] %variable IN (string) DO command [command-parameters]
FOR /F [options] %variable IN ('command') DO command [command-parameters]
filenameset 為一個或多個文件名。繼續到 filenameset 中的下一個文件之前,每份文件都已被打開、讀取並經過處理。處理包括讀取文件,將其分成一行行的文字,然後將每行解析成零或更多的符號。然後用已找到的符號字元串變數值調用 For 循環。以默認方式,/F 通過每個文件的每一行中分開的第一個空白符號。跳過空白行。您可通過指定可選 options參數替代默認解析操作。這個帶引號的字元串包括一個或多個指定不同解析選項的關鍵字。這些關鍵字為:
eol=c - 指一個行注釋字元的結尾(就一個)
skip=n - 指在文件開始時忽略的行數。
delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的默認分隔符集。
tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代的for本身。這會導致額外變數名稱的分配。m-n格式為一個范圍。通過 nth 符號指定 mth。如果符號字元串中的最後一個字元星號,那麼額外的變數將在最後一個符號解析之後分配並接受行的保留文本。
usebackq - 指定新語法已在下類情況中使用:在作為命令執行一個後引號的字元串並且一個單引號字元為文字字元串命令並允許在 filenameset中使用雙引號擴起文件名稱。
範例
某些範例可能有助:
FOR /F eol=; tokens=2,3* delims=, %i in (myfile.txt) do @echo %i %j %k會分析 myfile.txt 中的每一行,忽略以分號打頭的那些行,將每行中的第二個和第三個符號傳遞給for程序體;用逗號和/或空格定界符號。請注意,這個for程序體的語句引用 %i 來取得第二個符號,引用 %j 來取得第三個符號,引用 %k來取得第三個符號後的所有剩餘符號。對於帶有空格的文件名,您需要用雙引號將文件名括起來。為了用這種方式來使用雙引號,您還需要使用 usebackq 選項,否則,雙引號會被理解成是用作定義某個要分析的字元串的。%i 專門在for語句中得到說明,%j 和 %k 是通過tokens= 選項專門得到說明的。您可以通過 tokens= 一行指定最多 26 個符號,只要不試圖說明一個高於字母 'z' 或'Z' 的變數。請記住,FOR變數是單一字母、分大小寫和全局的;而且,同時不能有 52 個以上都在使用中。您還可以在相鄰字元串上使用 FOR /F 分析邏輯;方法是,用單引號將括弧之間的 filenameset 括起來。這樣,該字元串會被當做一個文件中的一個單一輸入行。最後,您可以用 FOR /F 命令來分析命令的輸出。方法是,將括弧之間的 filenameset 變成一個反括字元串。該字元串會被當做命令行,傳遞到一個子 CMD.EXE,其輸出會被抓進內存,並被當作文件分析。
因此,以下例子:
FOR /F usebackq delims== %i IN (`set`) DO @echo %i會枚舉當前環境中的環境變數名稱。另外,FOR變數參照的替換已被增強。您可以使用下列選項語法:
~I - 刪除任何引號(),擴充 %I
%~fI - 將 %I 擴充到一個完全合格的路徑名
%~dI - 僅將 %I 擴充到一個驅動器號
%~pI - 僅將 %I 擴充到一個路徑
%~nI - 僅將 %I 擴充到一個文件名
%~xI - 僅將 %I 擴充到一個文件擴展名
%~sI - 擴充的路徑只含有短名
%~aI - 將 %I 擴充到文件的文件屬性
%~tI - 將 %I 擴充到文件的日期/時間
%~zI - 將 %I 擴充到文件的大小
%~$PATH:I - 查找列在路徑環境變數的目錄,並將 %I 擴充
到找到的第一個完全合格的名稱。如果環境變數名
未被定義,或者沒有找到文件,此組合鍵會擴充到
空字元串
可以組合修飾符來得到多重結果:
%~dpI - 僅將 %I 擴充到一個驅動器號和路徑
%~nxI - 僅將 %I 擴充到一個文件名和擴展名
%~fsI - 僅將 %I 擴充到一個帶有短名的完整路徑名
%~dp$PATH:i - 查找列在路徑環境變數的目錄,並將 %I 擴充
到找到的第一個驅動器號和路徑。
%~ftzaI - 將 %I 擴充到類似輸出線路的 DIR
在以上例子中,%I 和 PATH 可用其他有效數值代替。%~ 語法
用一個有效的 FOR變數名終止。選取類似 %I 的大寫變數名
比較易讀,而且避免與不分大小寫的組合鍵混淆。
使用For輸出目錄名而忽略文件:
@echo off
for/d %%i in (window?) do @echo %%i
pause for counter = start to end step = 步進
執行語句
next
這個語句的具體解釋是指定,執行命令的次數。
具體例子如下
set wshshell=wscript.createobject(wscript.shell) '定義vbs對象
dim num,wen 』創建變數
wen = inputbox(請輸入要轟炸的內容必須是英文要不然會報錯哦(^o^)/~,發送消息的按鍵必須是回車鍵)
num = cint(inputbox(請輸入要轟炸的次數必須是數字!!)) '將字元串轉化為數字
msgbox 歡迎使用qq炸彈你有10秒的時間定位要轟炸qq的對話框
wscript.sleep 10000
const i=1
for k= i to num 『步進為1默認,開始次數1,循環次數num變數等等待用戶輸入
wshshell.sendkeys wen 』發送用戶輸入的消息
wshshell.sendkeys {ENTER}
wscript.sleep 100
next
❽ C語言程序設計循環
遞歸,說也不太好說
簡單來說,就是f(a,0)+a[0]的值,是專f(a,1)的值
f(a,1)+a[1]的值,是f(a,2)的值
f(a,2)+a[2]的值,是f(a,3)的值
.........
以此類推屬
到最後,因為f(a,0)是f(a,1-1),再往下f(a,0-1)直接返回0
所以差不多理解了吧,就是0+1+2+3+4+5=15
多看看書,靠這是說不了多清楚的,把遞歸原理想清楚
❾ 循環結構的程序設計(用for循環語句,高一的知識)
1.
main()
{
int Array[10],Sum,Ang;
printf("Input 10 Number:");
for(int i=0;i<10;i++)
scanf("%d",&Array[i]);//輸入10個整數
for(int j=0;j<10;j++)//計算和
Sum+=Array[j];//和
Ang = Sum/10;//平均值
printf("和是:%d",Sum);
printf("平均值是:%d",Ang);
}
2.
main()
{
int Array[20],Max,Min;
printf("Input 20 Number:");
for(int i=0;i<20;i++)
scanf("%d",&Array[i]);//輸入20個數
if(Array[0]>=Array[1])
{ Max = Array[0]; Min = Array[1];}
else
{Max = Array[1]; Min = Array[0];}
for(int j=2;j<20;j++)
{
if(Array[j]>=Max)
Max = Array[j];//更新最大值
else
if(Array[j]<Min)
Min = Array[j];//更新最小值
}
printf("最大值是:%d,最小值是:%d",Max,Min);
}
3.
main()
{
int BCD1,BCD2,NewNum;
for(int i=10;i<=99;i++)
{
BCD1 = i%10;//個位
BCD2 = i/10;//十位
NewNum = 10*BCD1 + BCD2;//個位與十位調換後的新數
if((NewNum-i)==36)
printf("%d/n",i);//輸出符合要求的數
}
}
4.
main()
{
int BeforeTwo,LastTwo,EquSum;
for(int i=1000;i<=9999;i++)
{
BeforeTwo = i/100;//前兩位
LastTwo = i%100;//後兩位
EquSum = (BeforeTwo+LastTwo)*(BeforeTwo+LastTwo);//和的平方
if(i==EquSum)
printf("%d/n",i);//輸出符合條件的數
}
}
5.
main()
{
int n,s;
printf("Input 1 Number:");
scanf("%d",&n);
for(int i=1;i=<n;i++)
for(int j=1;j<=i;j++)
s+=j;//求和
printf("The result is %d/n",s);
}
今天晚上閑著無事,就幫你全做完了,學程序完全在於思路,不要在乎做多少題目,當然,必要的訓練還是要,希望你能從以上的程序學到你想要的東西,呵呵,需要其他幫忙給我留言!