为了账号安全,请及时绑定邮箱和手机立即绑定

作业社区

探索学习新天地,共享知识资源!

0 提交作业
0 布置作业
0 满分作业
得分 100
学习任务

慕斯卡4428351 的学生作业:

head.h #ifndef __HEAD_H__ #define __HEAD_H__ #include #include #include #define N 27 typedef int data_t; //node typedef struct node { data_t data; struct node *next; }linknode_t; //linkqueue typedef struct { linknode_t *front; linknode_t *rear; }linkqueue_t; //linkstack typedef struct { linknode_t *top; int n; }linkstack_t; extern linkstack_t *create_empty_linkstack(); extern int is_empty_linkstack(linkstack_t *l); extern int push_linkstack(linkstack_t *l,data_t data); extern data_t pop_linkstack(linkstack_t *l); extern data_t get_top_linkstack(linkstack_t *l); extern linkqueue_t *create_empty_linkqueue(); extern int is_empty_linkqueue(linkqueue_t *l); extern int enter_linkqueue(linkqueue_t *l,data_t data); extern data_t leave_linkqueue(linkqueue_t *l); #endif linkstack.c #include "head.h" linkstack_t *create_empty_linkstack() { linkstack_t *t = NULL; t = (linkstack_t *)malloc(sizeof(linkstack_t)); if(NULL == t) { printf("malloc is failed\n"); return NULL; } memset(t,0,sizeof(linkstack_t)); return t; } int is_empty_linkstack(linkstack_t *l) { return l->top == NULL ? 1 : 0; } int push_linkstack(linkstack_t *l,data_t data) { linknode_t *temp = NULL; temp = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == temp) { printf("malloc is failed\n"); return -1; } temp->data = data; temp->next = l->top; l->top = temp; l->n++; return 0; } data_t pop_linkstack(linkstack_t *l) { data_t data; linknode_t *temp = NULL; temp = l->top; data = temp->data; l->top = temp->next; l->n--; free(temp); temp = NULL; return data; } data_t get_top_linkstack(linkstack_t *l) { return l->top->data; } linkqueue.c #include "head.h" linkqueue_t *create_empty_linkqueue() { linkqueue_t *q = NULL; linknode_t *head = NULL; head = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == head) { printf("malloc is failed\n"); return NULL; } memset(head,0,sizeof(linknode_t)); q = (linkqueue_t *)malloc(sizeof(linkqueue_t)); if(NULL == q) { printf("malloc is failed\n"); return NULL; } q->front = head; q->rear = head; return q; } int is_empty_linkqueue(linkqueue_t *l) { return l->front == l->front ? 1 : 0; } extern int enter_linkqueue(linkqueue_t *l,data_t data) { linknode_t *temp = NULL; temp = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == temp) { printf("malloc is failed\n"); return -1; } temp->data = data; temp->next = l->rear->next; l->rear->next = temp; l->rear = temp; return 0; } data_t leave_linkqueue(linkqueue_t *l) { data_t data; linknode_t *temp = NULL; temp = l->front->next; data = temp->data; l->front->next = temp->next; if(temp->next == NULL) l->rear = l->front; free(temp); temp = NULL; return data; } ballblock.c #include "head.h" int is_initial_ballstate(linkqueue_t *l) { int i = 0; linknode_t *temp = NULL; temp = l->front->next; for(i = 1; i data != i) { return 0; } temp = temp->next; } return 1; } void printf_data_ballqueue(linkqueue_t *l) { linknode_t *temp = NULL; temp = l->front->next; while(temp != NULL) { printf("%d ",temp->data); temp = temp->next; } printf("\n"); } void ballclock() { linkqueue_t *ball_queue = NULL; linkstack_t *min_stack = NULL; linkstack_t *fmin_stack = NULL; linkstack_t *hour_stack = NULL; ball_queue = create_empty_linkqueue(); min_stack = create_empty_linkstack(); fmin_stack = create_empty_linkstack(); hour_stack = create_empty_linkstack(); int i = 0; int j = 0; data_t ball_num = 0; data_t leave_ball_num = 0; //initial for(i = 1;i

得分 95
学习任务

枝wenz_fpJNR0 的学生作业:

write: #include #include #include #include #include #include #include #define SHM_KEY 0x123456 #define PATH "." #define PROJECT_ID 0x123456 #define SHM_SIZE 1024//共享内存大小 int main(int argc, char const *argv[]) { key_t key; int ret,shmid; void *shmaddr=NULL;//共享内存地址 // 生成共享内存键值 key=ftok(PATH,PROJECT_ID); if(key == -1) { perror("[ERROR] ftok() :"); exit(EXIT_FAILURE); } // 创建共享内存 shmid = shmget(key, SHM_SIZE, IPC_CREAT | 0666); if(shmid == -1) { perror("[ERROR] shmget() :"); exit(EXIT_FAILURE); } // 打印共享内存ID printf("共享内存ID: %d\n", shmid); // 映射共享内存 shmaddr = shmat(shmid, NULL, 0); if(shmaddr == (void *)-1) { perror("[ERROR] shmat() :"); exit(EXIT_FAILURE); } // 打印共享内存地址 printf("共享内存地址: %p\n", shmaddr); // 写入共享内存 memcpy(shmaddr, "hello world", 12); // 打印写入后的共享内存内容 printf("写入后的共享内存内容: %s\n", (char *)shmaddr); // 从共享内存中解映射 shmdt(shmaddr); return 0; } read: #include #include #include #include #include #include #include #define SHM_KEY 0x123456 #define PATH "." #define PROJECT_ID 0x123456 #define SHM_SIZE 1024//共享内存大小 int main(int argc, char const *argv[]) { key_t key; int ret,shmid; void *shmaddr=NULL;//共享内存地址 char shm_buf[SHM_SIZE];//共享内存缓冲区 // 生成共享内存键值 key=ftok(PATH,PROJECT_ID); if(key == -1) { perror("[ERROR] ftok() :"); exit(EXIT_FAILURE); } // 创建共享内存 shmid = shmget(key, SHM_SIZE, 0666); if(shmid == -1) { perror("[ERROR] shmget() :"); exit(EXIT_FAILURE); } // 打印共享内存ID printf("共享内存ID: %d\n", shmid); // 映射共享内存 shmaddr = shmat(shmid, NULL, 0); if(shmaddr == (void *)-1) { perror("[ERROR] shmat() :"); exit(EXIT_FAILURE); } // 打印共享内存地址 printf("共享内存地址: %p\n", shmaddr); // 读取共享内存内容 memcpy(shm_buf, shmaddr, 12); // 打印读取到的共享内存内容 for (int i = 0;i < 12;i++){ printf(" %c ",shm_buf[i]); } putchar('\n');//换行 // 从共享内存中解映射 shmdt(shmaddr); return 0; } 【图片】

得分 95
学习任务

学无止境呀呀呀 的学生作业:

#include #include #include #include #include #include #include #include #define BACKLOG 10 void *do_pthread_client(void *arg) { int cfd = *(int *) arg;//指针赋值 ssize_t rbytes = 0,sbytes = 0; char buffer[1024] = {0}; for(;;) { memset(buffer,0,sizeof(buffer)); //接收客户端消息 rbytes = recv(cfd,buffer,sizeof(buffer),0); if(rbytes == -1) { perror("[ERROR] Failed to recv."); close(cfd); pthread_exit(NULL); }else if (rbytes>0) { //发回给客户端 sbytes = send(cfd,buffer,strlen(buffer),0); if(sbytes == -1) { perror("[ERROR] Failed to recv."); close(cfd); pthread_exit(NULL); } }else if (rbytes == 0) { printf("客户端已断开连接"); break; } printf("客户端发来:%s",buffer); //回显给客户端 sbytes = send(cfd,buffer,strlen(buffer),0); if(sbytes == -1) { perror("[ERROR] send():"); close(cfd); pthread_exit(NULL); } //收到quit 退出本次连接 if(strcmp(buffer,"quit\n") == 0) { printf("客户端请求退出,服务端结束本次连接\n"); break; } } close(cfd); pthread_exit(NULL); } int main(int argc,char *argv[]) { if(argc!=3) { fprintf(stderr,"usage : %s < ip > < port >.\n",argv[0]); exit(EXIT_FAILURE); } int sfd,ret,cfd; pthread_t pid; struct sockaddr_in svr_addr,cli_addr; socklen_t len = sizeof(struct sockaddr_in); sfd = socket(AF_INET,SOCK_STREAM,0); if(sfd == -1) { perror("[ERROR] socket():"); exit(EXIT_FAILURE); } //初始化服务端地址结构对象 bzero(&svr_addr,sizeof(struct sockaddr_in)); svr_addr.sin_family = AF_INET; svr_addr.sin_port = htons(atoi(argv[2])); svr_addr.sin_addr.s_addr = inet_addr(argv[1]); //绑定ip与端口号 ret = bind(sfd,(const struct sockaddr *)&svr_addr,sizeof(struct sockaddr_in)); if(ret == -1) { perror("[ERROR] bind():"); exit(EXIT_FAILURE); } ret = listen(sfd,BACKLOG); if(ret == -1) { perror("[ERROR] Failed to listen."); close(sfd); exit(EXIT_FAILURE); } printf("服务端启动成功,等待客户端连接....\n"); for(;;){ //接收客户端连接 cfd = accept(sfd,(struct sockaddr *)&cli_addr,&len); if(cfd == -1) { perror("[ERROR] Failed to accept."); close(sfd); exit(EXIT_FAILURE); } printf("ip : %s port :%d\n",inet_ntoa(cli_addr.sin_addr),ntohs(cli_addr.sin_port)); int retp = pthread_create(&pid,NULL,do_pthread_client,(void *)&cfd); if(retp !=0) { perror("[ERROR] Failed to pthread_create."); pthread_exit(NULL); } } //关闭套接字 close(cfd); close(sfd); if(pthread_detach(pid) != 0) { perror("[ERROR] Failed to pthread_detach."); pthread_exit(NULL); } pthread_exit(NULL); return 0; }

得分 100
讨论题

慕斯卡4428351 的学生作业:

seqstack.h #ifndef __SEQSTACK_H__ #define __SEQSTACK_H__ #include #include #include #define MAX 20 typedef char data_t; typedef struct { data_t buf[MAX]; int top; }seqstack_t; //create empty stack extern seqstack_t *create_empty_stack(); extern int is_empty_stack(seqstack_t *st); extern int is_full_stack(seqstack_t *st); extern void push_stack(seqstack_t *st,data_t data); extern int pop_stack(seqstack_t *st); extern int get_top_stack(seqstack_t *st); #endif seqstack.c #include "seqstack.h" seqstack_t *create_empty_stack() { seqstack_t *s = NULL; s = (seqstack_t *)malloc(sizeof(seqstack_t)); if(NULL == s) { printf("malloc is failed\n"); return NULL; } memset(s,0,sizeof(seqstack_t)); s->top = -1; return s; } int is_empty_stack(seqstack_t *st) { return st->top == -1 ? 1 : 0; } int is_full_stack(seqstack_t *st) { return st->top == MAX - 1 ? 1 : 0; } void push_stack(seqstack_t *st,data_t data) { //st->top++; //st->data[top] = data; st->buf[++st->top] = data; return ; } int pop_stack(seqstack_t *st) { return st->buf[st->top--]; } int get_top_stack(seqstack_t *st) { return st->buf[st->top]; } main.c #include "seqstack.h" int main(int argc, const char *argv[]) { int i = 0; seqstack_t *s; data_t buffer[] = {'a','n','i','h','c',' ','e','v','o','l',' ','I'}; s = create_empty_stack(); for(i = 0; buffer[i] != '\0'; i++) { push_stack(s,buffer[i]); } while(!is_empty_stack(s)) { printf("%c",pop_stack(s)); } printf("\n"); return 0; }

得分 100
讨论题

慕斯卡4428351 的学生作业:

#include #include #include typedef int datatype_t; typedef struct loop { datatype_t data; struct loop *next; }loopnode_t; loopnode_t *create_first_looplist() { loopnode_t *head = NULL; head = (loopnode_t *)malloc(sizeof(loopnode_t)); if(NULL == head) { printf("malloc is failed\n"); return NULL; } head->data = 1; head->next = head; return head; } void printf_data_looplist(loopnode_t *head) { loopnode_t *p = head; while(p->next != head) { printf("%d ",p->data); p = p->next; } printf("%d\n",p->data); } void insert_tail_looplist(loopnode_t *head,datatype_t data) { loopnode_t *p = NULL; loopnode_t *q = head; p = (loopnode_t *)malloc(sizeof(loopnode_t)); if(NULL == p) { printf("malloc is failed\n"); return ; } memset(p,0,sizeof(loopnode_t)); while(q->next != head) q = q->next; p->data = data; p->next = q->next; q->next = p; return ; } loopnode_t *find_first_pos(loopnode_t *head,int num) { loopnode_t *p = head; int i = 0; for(i = 1; i < num; i++) p = p->next; return p; } loopnode_t * queue_data_looplist(loopnode_t *first,int m) { loopnode_t *p = first; loopnode_t *q = NULL; if(p->next == first) { printf("%d ",p->data); free(p); p = NULL; return p; } int i = 0; for(i = 1; i < m; i++) { q = p; p = p->next; } q->next = p->next; printf("%d ",p->data); free(p); p = NULL; return q->next; } int main(int argc, const char *argv[]) { int i = 0; int n = 8,k=3,m=4; loopnode_t *l = NULL; loopnode_t *first_pos = NULL; loopnode_t *next_pos = NULL; l = create_first_looplist(); for(i = 2; i

得分 100
讨论题

慕斯卡4428351 的学生作业:

linklist.h #ifndef __LINKLIST_H__ #define __LINKLIST_H__ #include #include #include typedef int datatype_t; typedef struct link { datatype_t data; struct link *next; }linknode_t; //1.create a empty linklist extern linknode_t *create_empty_linklist(); //2.judge linklist is no data extern int is_empty_linklist(linknode_t *head); //3.insert data from head extern void insert_head_linklist(linknode_t *head,datatype_t data); //4.print data extern void printf_data_linklist(linknode_t *head); //5.insert data from tail extern void insert_tail_linklist(linknode_t *head,datatype_t data); //6.insert data by order extern void insert_order_linklist(linknode_t *head,datatype_t data); //7.delete data from link extern int delete_data_linklist(linknode_t *head,datatype_t data); #endif linklist.c #include "linklist.h" linknode_t *create_empty_linklist() { linknode_t *head = NULL; head = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == head) { printf("malloc is failed\n"); return NULL; } memset(head,0,sizeof(linknode_t)); return head; } int is_empty_linklist(linknode_t *head) { return head->next == NULL ? 1 : 0; } void insert_head_linklist(linknode_t *head, datatype_t data) { linknode_t *p = NULL; p = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == p) { printf("malloc is failed\n"); return ; } memset(p,0,sizeof(linknode_t)); p->data = data; p->next = head->next; head->next = p; return ; } void printf_data_linklist(linknode_t *head) { linknode_t *p = head; while(p->next != NULL) { printf("%d ",p->next->data); p = p->next; } printf("\n"); } void insert_tail_linklist(linknode_t *head,datatype_t data) { linknode_t *p = NULL; linknode_t *q = head; p = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == p) { printf("malloc is failed\n"); return ; } memset(p,0,sizeof(linknode_t)); while(q->next != NULL) q = q->next; p->data = data; p->next = q->next; q->next = p; return ; } void insert_order_linklist(linknode_t *head,datatype_t data) { linknode_t *p = NULL; linknode_t *q = head; p = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == p) { printf("malloc is failed\n"); return ; } memset(p,0,sizeof(linknode_t)); p->data = data; while(q->next != NULL && data < q->next->data){ q = q->next; } p->next = q->next; q->next = p; return ; } int delete_data_linklist(linknode_t *head,datatype_t data) { linknode_t *p = head; linknode_t *q = NULL; int flag = 0; if(is_empty_linklist(head)) return -1; while(p->next != NULL) { q = p->next; if(q->data == data) { flag++; p->next = q->next; free(q); q = NULL; }else p = q; } if(flag == 0) return -2; return 0; } main.c #include "linklist.h" int main(int argc, const char *argv[]) { int i = 0; int ret = 0; int a[] = {1,5,3,7,9,5,8,5,3}; int d = 3; int len = sizeof(a) / sizeof(a[0]); linknode_t *l; l = create_empty_linklist(); for(i = 0; i < len; i++) insert_order_linklist(l,a[i]); printf_data_linklist(l); printf("======================="); ret = delete_data_linklist(l,d); if(ret < 0) printf("linklist is empty or %d is not exist\n",d); else{ printf("%d is delete successful!\n",d); printf_data_linklist(l); } return 0; }

得分 100
讨论题

慕斯卡4428351 的学生作业:

linklist.h #include "linklist.h" linknode_t *create_empty_linklist() { linknode_t *head = NULL; head = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == head) { printf("malloc is failed\n"); return NULL; } memset(head,0,sizeof(linknode_t)); return head; } int is_empty_linklist(linknode_t *head) { return head->next == NULL ? 1 : 0; } void insert_head_linklist(linknode_t *head, datatype_t data) { linknode_t *p = NULL; p = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == p) { printf("malloc is failed\n"); return ; } memset(p,0,sizeof(linknode_t)); p->data = data; p->next = head->next; head->next = p; return ; } void printf_data_linklist(linknode_t *head) { linknode_t *p = head; while(p->next != NULL) { printf("%d ",p->next->data); p = p->next; } printf("\n"); } void insert_tail_linklist(linknode_t *head,datatype_t data) { linknode_t *p = NULL; linknode_t *q = head; p = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == p) { printf("malloc is failed\n"); return ; } memset(p,0,sizeof(linknode_t)); while(q->next != NULL) q = q->next; p->data = data; p->next = q->next; q->next = p; return ; } void insert_order_linklist(linknode_t *head,datatype_t data) { linknode_t *p = NULL; linknode_t *q = head; p = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == p) { printf("malloc is failed\n"); return ; } memset(p,0,sizeof(linknode_t)); p->data = data; while(q->next != NULL && data < q->next->data){ q = q->next; } p->next = q->next; q->next = p; return ; } linklist.c #include "linklist.h" linknode_t *create_empty_linklist() { linknode_t *head = NULL; head = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == head) { printf("malloc is failed\n"); return NULL; } memset(head,0,sizeof(linknode_t)); return head; } int is_empty_linklist(linknode_t *head) { return head->next == NULL ? 1 : 0; } void insert_head_linklist(linknode_t *head, datatype_t data) { linknode_t *p = NULL; p = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == p) { printf("malloc is failed\n"); return ; } memset(p,0,sizeof(linknode_t)); p->data = data; p->next = head->next; head->next = p; return ; } void printf_data_linklist(linknode_t *head) { linknode_t *p = head; while(p->next != NULL) { printf("%d ",p->next->data); p = p->next; } printf("\n"); } void insert_tail_linklist(linknode_t *head,datatype_t data) { linknode_t *p = NULL; linknode_t *q = head; p = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == p) { printf("malloc is failed\n"); return ; } memset(p,0,sizeof(linknode_t)); while(q->next != NULL) q = q->next; p->data = data; p->next = q->next; q->next = p; return ; } void insert_order_linklist(linknode_t *head,datatype_t data) { linknode_t *p = NULL; linknode_t *q = head; p = (linknode_t *)malloc(sizeof(linknode_t)); if(NULL == p) { printf("malloc is failed\n"); return ; } memset(p,0,sizeof(linknode_t)); p->data = data; while(q->next != NULL && data < q->next->data){ q = q->next; } p->next = q->next; q->next = p; return ; } main.c #include "linklist.h" int main(int argc, const char *argv[]) { int i = 0; int a[] = {1,5,3,7,9}; int len = sizeof(a) / sizeof(a[0]); linknode_t *l; l = create_empty_linklist(); for(i = 0; i < len; i++) //insert_head_linklist(l,i); //insert_tail_linklist(l,a[i]); insert_order_linklist(l,a[i]); printf_data_linklist(l); return 0; }

得分 100
学习任务

慕斯卡4428351 的学生作业:

seqlist.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include #include #include #define MAX 10 struct student { char name[20]; int id; int age; }; typedef struct student datatype_t; typedef struct { datatype_t a[MAX]; int n; }seqlist_t; // apply memory extern seqlist_t *create_empty_seqlist(); extern int is_full_seqlist(seqlist_t *s); extern int is_empty_seqlist(seqlist_t *s); extern void insert_data_seqlist(seqlist_t *s, datatype_t); extern void printf_data_seqlist(seqlist_t *s); #endif seqlist.c #include "seqlist.h" seqlist_t *create_empty_seqlist() { seqlist_t *s = NULL; s = (seqlist_t *)malloc(sizeof(seqlist_t)); if(NULL == s) { printf("malloc is failed!\n"); return NULL; } memset(s,0,sizeof(seqlist_t)); return s; } int is_empty_seqlist(seqlist_t *s) { return s->n == 0 ? 1 : 0; } int is_full_seqlist(seqlist_t *s) { return s->n == MAX ? 1 : 0; } void insert_data_seqlist(seqlist_t *s, datatype_t data) { if(is_full_seqlist(s)) { return; } strcpy(s->a[s->n].name, data.name); s->a[s->n].id = data.id; s->a[s->n].age = data.age; s->n++; } void printf_data_seqlist(seqlist_t *s) { int i; printf("name\tid\tage\n"); for(i = 0; i < s->n; i++) { printf("%s\t%d\t%d\n",s->a[i].name,s->a[i].id,s->a[i].age); } } main.c #include "seqlist.h" int main(int argc, const char *argv[]) { seqlist_t *s_t = NULL; datatype_t t; int i = 0; int n = 0; s_t = create_empty_seqlist(); printf("please input n data : "); scanf("%d",&n); for(i = 0;i < n;i++) { printf("please input stident name,id,age : "); scanf("%s%d%d",t.name,&(t.id),&(t.age)); insert_data_seqlist(s_t,t); } printf_data_seqlist(s_t); free(s_t); s_t = NULL; return 0; }

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号