c语言画图板的编程,按下面的顺序,xx

c语言设计报告,画图板的编程,图形绘制模块,文件操作模块,消息响应模块

img

img

img

你是要源代码还是什么

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7748697
  • 这篇博客你也可以参考下:C语言程序练习,指针变量作函数参数 , 编写函数,通过指针求字符串的长度
  • 除此之外, 这篇博客: 使用C语言实现链表的创建,删除,查找,插入中的 使用C语言实现链表的创建,删除,查找,插入 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    重要的知识点介绍:
    一:

    1|Status ListInsert_L(linklist &L,int i,ElemType e)//在第i个位置插入e元素 
    

    有些函数参数前带&号:
    &号就是取地址,传递变量的指针,使形参得到一个变量的地址,这时形参指针变量指向实参变量单元,如果我们对带有&号的变量进行更改,那么主函数中相应变量也会一起改变

    二:

    typedef struct LNode
    {
    	ElemType data;
    	struct LNode *next;
    	
     } LNode ,*linklist;
    

    在定义节点时,LNode *p ,linklist p的意思是一样的

    三:所有代码如下

    #include<stdio.h>
    #include<stdlib.h>
    #define ERROR 0 
    #define OK 1
    typedef int Status;
    typedef int ElemType;
    
    typedef struct LNode
    {
    	ElemType data;
    	struct LNode *next;
    	
     } LNode ,*linklist;
     
    void CreateList_L(linklist &L,int n)
    {
    	L= (linklist) malloc (sizeof(LNode));
    	L->next = NULL;
    	int i; 
    	LNode *p;
    	for (i=n;i>0;i--)
    	{
    		p=(linklist) malloc (sizeof(LNode));
    		scanf ("%d",&(p->data));
    		p->next=L->next;L->next=p;
    	}
     } 
     
    void OutputLNode(linklist L)
    {
    	/*LNode *p = L->next;//初始化指针 
    	while (p)
    	{
    		printf("%d ",p->data);
    		p = p->next;
    	}*/
    	L=L->next;
    	while (L)
    	{
    		printf ("%d ",L->data);
    		L=L->next;
    	}
    	//两种初始化方法都可以
    }
    Status GetElem_L(linklist L,int i,ElemType &e) //查找第i位置上的元素 
    {
    	LNode *p;
    	int j;
    	p=L->next;//初始化指针指向第一个节点 
    	j=1;//计数器,计算查找次数 
    	while (p&&j<i)//顺时针向后查找, 直到p指向第i个元素或p为空 
    	{
    		p=p->next;
    		++j;
    	}
    		if (!p||j>j) return ERROR;//没有此元素 
    		e = p->data;
    		return OK;
    	
    }
    
    Status ListInsert_L(linklist &L,int i,ElemType e)//在第i个位置插入e元素 
    {
    	LNode *p,*s;
    	int j=0;
    	p=L;
    	while (p&&j<i-1)
    	{
    		p=p->next;++j;
    	}
    	if (!p||j<i-1) return ERROR;
    	s= (linklist)malloc(sizeof(LNode));
    	s->data= e;
    	s->next= p->next;p->next = s;
    	return OK; 
     }
     
    Status ListDelete_L(linklist &L,int i,ElemType &e)//删除第i个元素,并用e返回其值 
     {
     	LNode *p,*q;
    	int j=0;
     	p=L;
     	while (p->next&&j<i-1)//寻找第i个节点 
     	{
     		p=p->next ;
    	    ++j;
     		
    	 }
    	 if (!(p->next)||j>i-1) return ERROR;//删除位置不合理 
    	 q=p->next ; p->next = q->next;
    	 e = q->data; 
    	 free(q);
    	 return OK;
    	 
      } 
     
    int main()
    {
    	LNode *L;
    	//printf (" some number");
    	CreateList_L(L,4);
    	printf ("表中的元素依次为:\n");
    	OutputLNode(L);
    	ElemType e;
    	GetElem_L(L,2,e);
    	printf ("将56插入表中第二个位置:\n");
    	ListInsert_L(L,2,56);
    	OutputLNode(L);
    	printf ("删除第三个元:\n");
    	ListDelete_L(L,3,e);
    	OutputLNode(L);
    	system("pause");
    	return OK;	
    }
    
  • 您还可以看一下 王健伟老师的C语言入门篇课程中的 关系运算符、关系表达式,逻辑运算符、逻辑表达式小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^