選擇結構編程
1. c語言選擇結構是怎麼樣的
C語言選擇結構也稱分支結構,就是讓程序「拐彎」,有選擇性的執行代碼;換句話說,可以跳過沒用的代碼,只執行有用的代碼。
C語言順序結構就是讓程序按照從頭到尾的順序依次執行每一條C語言代碼,不重復執行任何代碼,也不跳過任何代碼。C語言循環結構就是讓程序「殺個回馬槍」,不斷地重復執行同一段代碼。
C語言中常用的編程結構有三種(其它編程語言也是如此),它們分別是:
順序結構:代碼從前往後依次執行,沒有任何「拐彎抹角」,不跳過任何一條語句,所有的語句都會被執行到。
選擇結構:也叫分支結構。代碼會被分成多個部分,程序會根據特定條件(某個表達式的運算結果)來判斷到底執行哪一部分。
循環結構:程序會重新執行同一段代碼,直到條件不再滿足,或者遇到強行跳出語句(break 關鍵字)。
2. 結構化程序設計的三種基本結構是什麼。各有什麼特點
答:
第一種:順序結構
順序結構表示程序中的各個操作時按照它們在源代碼中的排列順序依次執行的,其流程如圖所示。
3. 其實C語言就是三種結構吧順序結構、選擇結構、循環結構
是的。
C語言為結構化的語言,C語言有三種結構:順序結構、選擇結構、循環結構。
循環結構又包含當型循環和直到型循環:
1、當型循環:先判斷,後執行。最少執行0次。
2、直到型循環:先執行,後判斷。最少執行1次。
(3)選擇結構編程擴展閱讀:
結構訪問區別
結構體成員依據結構體變數類型的不同,一般有2種訪問方式,一種為直接訪問,一種為間接訪問。
直接訪問應用於普通的結構體變數,間接訪問應用於指向結構體變數的指針。直接訪問使用結構體變數名.成員名,間接訪問使用(*結構體指針名).成員名或者使用結構體指針名->成員名。相同的成員名稱依靠不同的變數前綴區分。
4. C語言編程 選擇結構程序設計
最終結果——m=3
switch (a%3) →a為16,a%3為1 → 執行 case 1 → m初值為0,m++為1。注意,這里case1 並沒有break,所以會繼續向下執行完整個switch (a%3) → 執行switch (b%2) → b為21,b%2為1 → 執行default → m為1,m++為2 → 注意這里依然會繼續執行case0 → m++為3,break跳出switch (b%2) →switch (a%3)語句結束 → 執行printf,此時m為3。
#include<stdio.h>
voidmain(){
inta=16,b=21,m=0;
switch(a%3){
case0:m++;break;
case1:m++;
switch(b%2){
default:m++;
case0:m++;break;
}
}
printf("m=%d ",m);
}
運行結果
5. C語言的選擇結構編程練習 計算器
//實現計算機功能的程序 a program which can work the functions as a computer.
#include <stdio.h>//頭文件
#include <conio.h>
void menu();//聲明部分
void add();
void sub();
void mul();
void div();
void remain();
void add_n_to_m();
void factor();
main()
{
int i;
while(1)
{
system("cls");//清屏功能
menu();
printf("choose function:");
scanf("%d",&i);
switch(i)
{
case 1:add();getch();break;//調用部分
case 2:sub();getch();break;
case 3:mul();getch();break;
case 4:div();getch();break;
case 5:remain();getch();break;
case 6:add_n_to_m();getch();break;
case 7:factor();getch();break;
case 8: exit(0);break;
}
}
}
//以下是自己定義的函數
void menu()//菜單
{
printf("+====my counter===+\n");
printf("+功能如下: +\n");
printf("+ 1.加法 +\n");
printf("+ 2.減法 +\n");
printf("+ 3.乘法 +\n");
printf("+ 4.除法 +\n");
printf("+ 5.求余 +\n");
printf("+ 6.從n到m的和+\n");
printf("+ 7.階乘 +\n");
printf("+ 8.退出 +\n");
printf("+=================+\n");
}
void add()//加法運算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf+%lf=%lf\n",a,b,a+b);
}
void sub()//減法運算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf-%lf=%lf\n",a,b,a-b);
}
void mul()//乘法運算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
printf("%lf*%lf=%lf\n",a,b,a*b);
}
void div()//除法運算
{
double a,b;
printf("input two numbers:");
scanf("%lf%lf",&a,&b);
if(b==0)//被除數不能為0
printf("error\n");
else
printf("%lf/%lf=%lf\n",a,b,a/b);
}
void remain()//求余運算
{
int a,b;
printf("input two numbers:");
scanf("%d%d",&a,&b);
if(b==0)//被除數不能為0
printf("error\n");
else
printf("%d%%%d=%d\n",a,b,a%b);
}
void add_n_to_m()//累加
{
int m,n,i=0,s=0;
printf("input n and m:");
scanf("%d%d",&n,&m);
if(n>m) printf("error.\n");//條件限制
else
{
for(i=n;i<=m;i++)
s+=i;
printf("%d+...+%d=%d\n",n,m,s);
}
}
void factor()//階乘
{
int n,i,s;
printf("input a number:");
scanf("%d",&n);
if(n<=0) printf("error.\n");//條件限制
else
{
for(i=1,s=1;i<=n;i++)
s*=i;
printf("%d!=%d\n",n,s);
}