C语言程序的算法怎么算

C语言程序的算法怎么算,第1张

一般程序有3种结构,顺序、选择、循环。

顺序嘛就不用说了,选择用于有条件的情况,例如成绩<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

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/7897922.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存