當前位置:編程學習大全網 - 編程語言 - 請教編程

請教編程

//程序1 采用數組完成了全部三種功能

#include<stdio.h>

int find_num(int a[],int len,int x)

{

int i;

int num=0;

for (i=0;i<len;i++)

{

if (a[i]==x)

{

num++;

}

}

return num;

}

void revers_array(int a[],int len)

{

int i;

for (i=0;i<len/2;i++)

{

int temp=a[i];

a[i]=a[len-i-1];

a[len-i-1]=temp;

}

}

int delete_array(int a[],int len,int m,int n)

{

int i;

for (i=0;i<len && a[i]!=m;i++);

if (i>=len)

{

printf("沒有找到刪除區域最小值!\n");

return len;

}

int index1=i;

for (i=index1;i<len && a[i]!=n;i++);

if (i>=len)

{

printf("沒有找到刪除區域最大值!\n");

return len;

}

int index2=i;

if (m==n)

{

return len;

}

int j=1;

for (i=index2;i<len;i++)

{

a[index1+j++]=a[i];

}

return len-(index2-index1-1);

}

int main()

{

int i;

int a[9]={1,2,3,4,5,6,7,8,9};

printf("初始的數組元素:\n");

for (i=0;i<9;i++)

{

printf("%d,",a[i]);

}

printf("\n");

printf("查詢值為7的元素個數:\n");

int num=find_num(a,9,7);

printf("個數是:%d 個\n",num);

printf("逆置後:\n");

revers_array(a,9);

for (i=0;i<9;i++)

{

printf("%d,",a[i]);

}

printf("\n");

revers_array(a,9);//恢復原數組,準備刪除4-7之間的數據

printf("刪除4-7之間的元素後:\n");

int len=delete_array(a,9,4,7);

for (i=0;i<len;i++)

{

printf("%d,",a[i]);

}

printf("\n");

return 0;

}

//程序2 采用帶頭結點的單鏈表完成全部功能

#include<stdio.h>

#include "malloc.h"

#define N 9

typedef struct Node

{

int data;

Node* next;

}LNode;

void print_node(LNode* head)

{

while (head->next)

{

printf("%d,",head->next->data);

head=head->next;

}

printf("\n");

}

void revers_node(LNode* head)

{

LNode* p,*q,*r;

p=head->next;

q=p->next;

r=NULL;

while(p)

{

p->next=r;

r=p;

p=q;

if(q)

q=q->next;

}

head->next=r;

}

void delete_node(LNode* head,int m,int n)

{

LNode* p,*q;

p=head->next;

q=p;

while(p && p->data!=m)

p=p->next;

if (!p)

{

printf("沒有找到刪除區域的最小節點值!\n");

return;

}

q=p->next;

while(q && q->data!=n)

q=q->next;

if (!q)

{

printf("沒有找到刪除區域的最大節點值!\n");

return;

}

p->next=q;

}

int find_node(LNode* head,int x)

{

int num=0;

while (head->next)

{

if (head->next->data==x)

{

num++;

}

head=head->next;

}

return num;

}

int main()

{

int i;

LNode* head=(LNode*)malloc(sizeof(LNode));

LNode* p,*q;

p=head;

q=p;

for (i=0;i<N;i++)

{

LNode* node=(LNode*)malloc(sizeof(LNode));;

node->data=i+1;

node->next=NULL;

p->next=node;

p=node;

}

p=head;

printf("初始化完成後單鏈表元素為:\n");

print_node(p);

p=head;

printf("單鏈表逆置後:\n");

revers_node(p);

print_node(p);

revers_node(p);//恢復原始單鏈表順序,準備查詢值為x的個數

head=p;

int num=find_node(p,7);

printf("值為7的元素出現了:%d 次!\n",num);

p=head;

printf("刪除了4-7之間的元素後:\n");

delete_node(p,4,7);

p=head;

print_node(p);

return 0;

}

  • 上一篇:媒體:董明珠怎樣做壹個討人喜歡的上市公司老板
  • 下一篇:譯碼器在單片機系統中的應用如何編寫代碼
  • copyright 2024編程學習大全網