
顺序嘛就不用说了,选择用于有条件的情况,例如成绩<60,评级为'D',60<成绩<70评级为'C'...
循环就是用于重复做某样计算,就如同你的问题,累加(譬如从1+2...+100)实际上就是循环的典型也是最基本应用。
int
i,sum=0
for(i=1i<=100i++)
sum
=
sum
+i
刚好这两天也在玩链表,想写个模板.给你一段代码吧
#include<stdio.h>#include<stdlib.h>
#include<malloc.h>
typedef int DataType//数据类型,如果这里更改了类型,
//要注意更改链表输出函数中输出格式.
struct _Node
{
DataType data
struct _Node *next
}Node
typedef struct _Node list_single
list_single *Node_Create(DataType data)//新建结点
{
list_single *p=NULL
p=(list_single *)malloc(sizeof(list_single))
if(p==NULL)
{
printf("malloc fair!\n")
exit(1)
}
p->data=data
p->next=NULL
//printf("data=%d\n", p->data)
return p
}
void Push_Back(list_single *head, DataType data)//表尾添加
{
list_single *p= NULL
if (head==NULL)
{
head = Node_Create(data)
p=head
}
else
{
p=head
while (p->next)
{
p= p->next
}
}
p->next = Node_Create(data)
}
void List_Print(list_single *head)//打印链表
{
list_single *p=head
printf("Head")
while(p->next)
{
p=p->next
//printf("%3c",p->data)
printf(" ->%d",p->data )//注意保持这个输出格式与DataType一致
}
printf("\n")
}
int List_Count(list_single *head)//表长
{
int k=0
list_single *p=head
while(p->next)
{
p=p->next
k++
}
return k
}
list_single *List_Create(void)//建表
{
int x
list_single *head=NULL
list_single *p=NULL
head=Node_Create(NULL)//建头结点
p=head
if(p==NULL)
{
printf("malloc fair!\n")
exit(1)
}
printf("输入一个数x\n")//追加结点
scanf("%d",&x)
while(x!=-1)
{
Push_Back(p,x)//追加结点到表尾,或者只用下面两句代码,效果一样
//p->next = Node_Create(x)
//p=p->next
scanf("%d",&x)
}
return head//返回表头
}
int main()
{
list_single *p
p=List_Create()//建表
List_Print(p)//输出
printf("Size:%d\n",List_Count(p))//输出表长
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)