




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、T071、大数乘法#include <stdio.h>#include <string.h>#include <stdlib.h>void cheng(char a,char b) int i,j,ca,cb,*s; ca=strlen(a); cb=strlen(b); s=(int *)malloc(sizeof(int)*(ca+cb); /分配存储空间 for (i=0;i<ca+cb;i+) si=0; / 每个元素赋初值0 for (i=0;i<ca;i+) for (j=0;j<cb;j+) si+j+1+=(ai-'
2、0')*(bj-'0'); for (i=ca+cb-1;i>=0;i-) / 这里实现进位操作 if (si>=10) si-1+=si/10; si%=10; i=0; while(si=0) i+; / 跳过头部0元素 for (;i<ca+cb;i+) printf("%d",si); printf("n"); free(s);int main() char a100,b100; gets(a),gets(b); if(a0='-'&&b0!='-') pr
3、intf("-"); cheng(&a1,b); else if(a0='-'&&b0='-') cheng(&a1,&b1); else if(a0!='-'&&b0='-') printf("-"); cheng(a,&b1); else cheng(a,b); return 0;T072、创建与遍历职工链表#include <stdio.h>#include <stdlib.h>struct mem
4、ber int data; struct member*next;struct member *creat(struct member*head) struct member *p1,*p2=NULL; int i,n; scanf("%d",&n); for(i=0;i<n;i+) p1=(struct member*)malloc(sizeof(struct member); scanf("%d",&p1->data); if(i=0) head=p1; else p2->next=p1; p2=p1; p2->
5、;next=NULL; return head;void list(struct member*head) struct member *p=head; while(p!=NULL) printf("%d ",p->data); p=p->next; printf("n");int main() struct member *head; head=creat(head); list(head); return 0;T073、幸运儿#include <stdio.h>int main() int a51=0,b20,x,count=
6、0,num=0,j=0,n,i,flag=0; scanf("%d%d",&n,&x); for(i=0;i<20;i+) scanf("%d",&bi); while(1) for(i=1;i<=n;i+) if(ai=0) num+; if(num=bj) ai=1; num=0; count+; if(count=n-x) flag=1; break; if(flag=1) break; j+; num=0; for(i=1;i<=n;i+) if(ai=0) printf("%d ",
7、i); printf("n"); return 0;T074、插入链表节点#include <stdio.h>#include <stdlib.h>struct member int data; struct member*next;struct member *creat(struct member*head) struct member *p1,*p2=NULL; int i,n; scanf("%d",&n); for(i=0;i<n;i+) p1=(struct member*)malloc(sizeof(s
8、truct member); scanf("%d",&p1->data); if(i=0) head=p1; else p2->next=p1; p2=p1; p2->next=NULL; return head;struct member *insert(struct member*head) struct member *p0=head,*p1; p1=(struct member *)malloc(sizeof(struct member); scanf("%d",&p1->data); while(p0-&
9、gt;next!=NULL) if(p0->data<p1->data&&p0->next->data>p1->data) p1->next=p0->next; p0->next=p1; p0=p0->next; return head;void list(struct member*head) struct member *p=head; while(p!=NULL) printf("%d ",p->data); p=p->next; printf("n");
10、int main() struct member *head; head=creat(head); head=insert(head); list(head); return 0;T075、毕业设计论文打印#include <stdio.h>int main() int n,m,a100=0,count=0,flag=0,i,j; scanf("%d%d",&n,&m); for(i=0;i<n;i+) scanf("%d",&ai); while(1) for(i=0;i<n&&ai!=0
11、;i+) for(j=i;j<n;j+) if(aj>ai) break; if(j=n) ai=0; count+; if(i=m) flag=1; break; if(flag=1) break; printf("%dn",count); return 0;T076、链表动态增长或缩短#include <stdio.h>#include <stdlib.h>#define LEN sizeof(struct student)int a10000;struct studentint age;struct student *next;in
12、t n;struct student *creat(int num) struct student *head; struct student *p1,*p2; n=0; p1=p2=(struct student*)malloc(LEN); scanf("%d",&p1->age); head=NULL; while(n<num) n=n+1; if(n=1) head=p1; else p2->next=p1; p2=p1; p1=(struct student *) malloc(LEN); if(n<num) scanf("
13、%d",&p1->age); p2->next=NULL; return head;struct student *del(struct student *head) struct student *p1,*p2,*p3,*p4,*p5; p1=head; p5=head; do if(ap1->age=1&&p1->next!=NULL) p2->next=p1->next; p3=p5; while(p3!=NULL) if(p3->age=p1->age) if(p3=head) head=p3->n
14、ext; else p4->next=p3->next; p4=p3; p3=p3->next; else if(ap1->age=1&&p1->next=NULL) p2->next=NULL; p3=p5; while(p3!=NULL) if(p3->age=p1->age) if(p3=head) head=p3->next; else p4->next=p3->next; p4=p3; p3=p3->next; else ap1->age=1; p2=p1; p1=p1->next;
15、while(p1!=NULL); return head;int main() int num; scanf("%d",&num); struct student *p; p=creat(num); p=del(p); do printf("%d ",p->age); p=p->next; while(p!=NULL); return 0;T077、大数减法#include <stdio.h>#include <string.h>#define max(a,b) a>b?a:b#define min(a,
16、b) a>b?b:aint sum101;void jia(char a,char b) int flag=0,i,len1,len2,lenmax,lenmin; len1=strlen(a),len2=strlen(b); lenmax=max(len1,len2),lenmin=min(len1,len2); for(i=1;i<=lenmax;i+) if(i<=lenmin) sumlenmax-i=alen1-i+blen2-i-'0'-'0'+flag; if(sumlenmax-i>=10) sumlenmax-i=sum
17、lenmax-i-10; flag=1; else flag=0; else if(len1>len2) sumlenmax-i=alen1-i-'0'+flag; if(sumlenmax-i>=10) sumlenmax-i=sumlenmax-i-10; flag=1; else flag=0; else sumlenmax-i=blen2-i-'0'+flag; if(sumlenmax-i>=10) sumlenmax-i=sumlenmax-i-10; flag=1; else flag=0; if(flag=1) printf(&
18、quot;1"); for(i=0;i<lenmax;i+) printf("%d",sumi); printf("n");void jian(char a,char b) int flag=0,i; int len1,len2; len1=strlen(a),len2=strlen(b); for(i=1;i<=len1;i+) if(i<=len2) if(alen1-i-blen2-i-flag>=0) sumlen1-i=alen1-i-blen2-i-flag; flag=0; else sumlen1-i=a
19、len1-i-blen2-i-flag+10; flag=1; else if(alen1-i-flag-'0'>=0) sumlen1-i=alen1-i-flag-'0' flag=0; else sumlen1-i=alen1-i-flag+10-'0' flag=1; for(i=0;i<len1&&sumi=0;i+); for(;i<len1;i+) printf("%d",sumi); printf("n");void compare(char a,char
20、b) int len1,len2; len1=strlen(a),len2=strlen(b); if(len1>len2|(len1=len2&&strcmp(a,b)>0) jian(a,b); else if(strcmp(a,b)!=0) printf("-"); jian(b,a); else printf("0n");int main() char a100,b100; gets(a); gets(b); if(a0='-'&&b0!='-') printf(&quo
21、t;-"); jia(&a1,b); else if(a0='-'&&b0='-') compare(&b1,&a1); else if(a0!='-'&&b0='-') jia(a,&b1); else compare(a,b); return 0;T078、大数除法#include<stdio.h>#include<string.h>int len1,len2;int re105;void sub(char s1,char s2)
22、 int i=0; int j; while(1) if(s1i='0') i+; else j=i; break; for(;i<len2;i+) s1i=s1i-s2i+'0' for(i=len2-1;i>j;i-) /低位开始检测是否小于0 if(s1i<'0') s1i+=10; s1i-1-; void chu(char s1,char s2) int p,i; len1=strlen(s1); len2=strlen(s2); if(len1<len2|(len1=len2&&strncmp(
23、s1,s2,len2)<0) /如果a<b,直接输出0 printf("0n"); return; p=0; while(1) rep=0; while(strncmp(s1,s2,len2)>=0) /一直进行减法,直到不能减为止 sub(s1,s2); rep+; p+; if(len1=len2) break; for(i=len2-1;i>=0;i-) /在s2前面补0,以便进行减法运算 s2i+1=s2i; s20='0' len2+; s2len2='0' i=0; while(1) if(rei=0) i
24、+; else break; for(;i<p;i+) printf("%d",rei); printf("n");int main(void) char s1105; char s2105; gets(s1),gets(s2); if(s10='-'&&s20!='-') printf("-"); chu(&s11,s2); else if(s10='-'&&s20='-') chu(&s11,&s21);
25、else if(s10!='-'&&s20='-') printf("-"); chu(s1,&s21); else chu(s1,s2); return 0;T079、链表节点删除#include <stdio.h>#include <stdlib.h>struct student int no; char name12; int age; struct student *next;struct student *deletelist(struct student *head,int n) s
26、truct student *p=head,*q; if(p->no=n) head=p->next; free(p); else while(p->next!=NULL&p->next->no!=n) p=p->next; if(p->next->no=n) q=p->next; p->next=q->next; free(q); return head;void list(struct student *head) struct student *p=head; while(p->next!=NULL) pri
27、ntf("%d ",p->no); p=p->next; printf("n");int main() int n,i=0; struct student *head,*p1,*p2; p1=p2=(struct student *)malloc(sizeof(struct student); for(i=0;i+) if(i=0) head=p1; else p2->next=p1; p2=p1; scanf("%d",&p1->no); if(p1->no=0) break; scanf("%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学班会爱国教育
- 幼儿祛疤护理方案
- 酒店领班年终工作总结
- 社区书记个人工作总结
- 内部审计工作总结范文
- 合伙成立餐饮公司合同书
- 2025版个人正式借款合同
- 中医中药行业
- 会议付款合同标准文本
- 书快递合同标准文本
- 有限空间风险辩识管控制度
- 皮肤科护理课件
- 2023年广东省初中毕业生英语学科学业考试大纲(含词汇表)
- 《控制器接口》课件
- 安全生产隐患识别图集 问题图片和整改图片对比 危险源识别(上)
- 未成年人违法犯罪的心理分析-以“四少年冷漠杀人案”为例
- 更换架空光缆施工方案
- 一年级美术下册第二课(鲜艳的花朵)
- 苏童《夏天的一条街道》阅读练习及答案
- 文化创意产品项目实训教程PPT全套完整教学课件
- 宝钢股份设备管理体系综合评价标准
评论
0/150
提交评论