第一、顺序结构:按照由上到下的顺序一行一行地执行的程序结构即为顺序结构;
第二、分支结构:根据不同的条件判断来决定程序执行走向的结构即为分支结构;
第三、循环结构:需要重复执行同一 *** 作的程序结构称为循环结构。
在顺序结构的C语言程序中,程序代码是按照顺序一步一步地执行的,也就是说,在每次运行过程中,程序会执行程序中编写的所有语句,直到程序结束。例如,以下代码是一个简单的顺序结构的C语言程序:
#include
int main() {
int a = 10
int b = 20
int c = a + b
printf("a = %d\n", a)
printf("b = %d\n", b)
printf("a + b = %d\n", c)
return 0
}
在这个程序中,首先定义了三个整型变量a、b和c,然后将a和b相加得到c的值,最后使用printf函数分别输出了a、b和c的值。在每次运行过程中,程序会依次执行这些语句,直到程序执行完毕并退出。
需要注意的是,如果程序中存在分支语句(如if语句、switch语句等)或循环语句(如while语句、for语句等),程序执行过程中可能会出现跳转、循环等情况,不一定每次都执行完所有的语句。但在顺序结构的C语言程序中,程序会按照代码的顺序依次执行所有语句。
#include <stdio.h>#include <malloc.h>
#define MaxSize 50
typedef char ElemType
typedef struct
{
ElemType elem[MaxSize]
int length
}SqList
void InitList(SqList *L) /* 初始化顺序表 */
{
L=(SqList *)malloc(sizeof(SqList))
L->length=0
}
void CreateListR(SqList *L,ElemType a[],int n) /*创建顺序表 */
{
int i
for(i=0i<ni++)
L=(SqList *)malloc(sizeof(SqList))
L->elem[i]=a[i]
L->length++
}
void DispList(SqList *L) /* 输出顺序表 */
{
int i
if(ListEmpty(L)) return
for(i=0i<L->lengthi++)
printf("%c",L->elem[i])
printf("\n")
}
int ListLength(SqList *L) /* 求顺序表的长度 */
{
return(L->length)
}
int ListEmpty(SqList *L) /* 求顺序表是否为空 */
{
return(L->length==0)
}
int GetElem(SqList *L,int i,ElemType e) /*求顺序表中某个数据的元素值 */
{
if(i<1||i>L->length)
return 0
else
e=L->elem[i-1]
return 1
}
int LocateElem(SqList *L,ElemType e)/*按值查找元素*/
{
int i=0
while(i<L->length&&L->elem[i]!=e) i++
if(i>=L->length)
return 0
else
return i+1
}
int ListInsert(SqList *L,int i,ElemType e) /*按i位置插入元素*/
{
int j
if(i<1||i>L->length+1)
return 0
i--
for (j=L->lengthj>ij--)
L->elem[j]=L->elem[j-1]
L->elem[i]=e
L->length++
return 1
}
int ListDelete(SqList *L,int i,ElemType e) /*删除某个位置的元素*/
{
int j
if (i<1||i>L->length)
return 0
i--
e=L->elem[i] /*e中的放elem[i]有何用..以后没用到*/
for(j=ij<L->length-1j++)
L->elem[j]=L->elem[j+1]
L->length--
return 1
}
void DestroyList(SqList *L) /*销毁链表*/
{
free(L)
}
void main()
{
SqList L
ElemType a[]={'a','b','c','d'}
int c
int e
while(1)
{
printf("Please Choose the step you want ?\n\n")
scanf("%d",&c)
if(c==0) break
switch(c)
{
case 1: InitList(&L)break
case 2: CreateListR(&L,a,4)break
case 3: DispList(&L)break
case 4: printf("long %d", ListLength(&L))break
case 5: printf("%d",ListEmpty(&L))break
case 6: GetElem(&L,3,e)break
case 7: LocateElem(&L,'a')break
case 8: ListInsert(&L,4,'f')break
case 9: DispList(&L)break
case 10: ListDelete(&L,3,e)break
case 11: DispList(&L)break
case 12: DestroyList(&L)break
default: printf("error data")break
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)