- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西工大c语言poj作业39101274
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;ica+cb;i++) s[i]=0; // 每个元素赋初值0
for (i=0;ica;i++)
for (j=0;jcb;j++)
s[i+j+1]+=(a[i]-0)*(b[j]-0);
for (i=ca+cb-1;i=0;i--) // 这里实现进位操作
if (s[i]=10)
{
s[i-1]+=s[i]/10;
s[i]%=10;
}
i=0;
while(s[i]==0) i++; // 跳过头部0元素
for (;ica+cb;i++) printf(%d,s[i]);
printf(\n);
free(s);
}
int main()
{
char a[100],b[100];
gets(a),gets(b);
if(a[0]==-b[0]!=-)
{
printf(-);
cheng(a[1],b);
}
else if(a[0]==-b[0]==-)
{
cheng(a[1],b[1]);
}
else if(a[0]!=-b[0]==-)
{
printf(-);
cheng(a,b[1]);
}
else
cheng(a,b);
return 0;
}
T072、创建与遍历职工链表
#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;in;i++)
{
p1=(struct member*)malloc(sizeof(struct member));
scanf(%d,p1-data);
if(i==0)
head=p1;
else
p2-next=p1;
p2=p1;
}
p2-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 a[51]={0},b[20],x,count=0,num=0,j=0,n,i,flag=0;
scanf(%d%d,n,x);
for(i=0;i20;i++)
scanf(%d,b[i]);
while(1)
{
for(i=1;i=n;i++)
{
if(a[i]==0) num++;
if(num==b[j])
{
a[i]=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(a[i]==0)
printf(%d ,i);
printf(\n)
文档评论(0)