算法分析与设计第二版习题答案-第三章到第五章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
buf[k+1]+=buf[k]/10;
buf[k]%=10;
}
}
for(i=n-1;i>=0;i--)
printf("%d",buf[i]);
printf("\n");
return0;
}
2.
#include<stdio.h>int main(int argc,char **argv){int buf[6][6];int i,j;printf("任意输入6个数
0;}4.#include<stdio.h>#define N 5int main(int argc,char **argv){int buf[N][N];int
i,j,k;int count=1;int n=0;for(i=0;i<N;i++){ for(k=0,j=n;j>=0;j--
,k++) buf[j][k]=count++; n++;}for(i=0;i<N;i++){ for(j=0;j<N-
>next=NULL;if(top==NULL){top=newnode; }else{newnode- >next=top; top=newnode; }}int pop(){int flag;link stack;if(top!=NULL){stack=top; top=top->next; flag=stack- >flag; free(stack); }return flag;}int op(char ch){switch(ch){case'+':return1;break; case'-':return2;break; case'*':return3;break; case'/':return4;break; default: return5;}}void nirnava(char *buf,int count)//count个数,buf数组
;}for(i=0;i<N;i++){ for(j=0;j<N;j++) printf("]",buf[i][j]); printf("\n");}return
0;}6.#include<stdio.h>#include<stdlib.h>typedef struct s_node s_list;typedef s_list *link;struct s_node{char ch;int flag;link next;};link top;void push(char ch,int flag){link newnode;newnode=(link)malloc(sizeof(s_list));newnode->ch=ch;newnode- >flag=flag;newnode-
算法设计与分析(第二版)习题答案 主编:吕国英
算法设计与分析(第二版)习题答案(第三章)
第三章:
1.#include<stdlib.h>#include<stdio.h>int main(int argc,char **argv){int n;int i,j,k;int *buf;printf("请输入n的数值:");
scanf("%d",&n);
buf=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
buf[i]=2;
}
for(i=n-2;i>=0;i--)
{
for(j=i;j>=0;j--)
{
buf[j]+=2;
}
}
for(k=0;k<=n-2;k++)
{
if(buf[k]>=10)
{
int bool=1;
int min;
int j;
int i;
int k;
int flag;
for(i=0;i<count;i++)
{
if(buf[i]=='(')
push(buf[i],i);
if(buf[i]==')')
{
flag=pop();
字:");for(i=0;i<6;i++) scanf("%d",&buf[0][i]);for(i=0;i<5;i++){ for(j=0;j<5;j++){buf[i+1][j+1]=buf[i][j];}buf[i+1][0]=buf[i][j];}for(i=0;i<6;i++){ for(j=0;j<6;j++) printf("%d ",buf[i][j]); printf("\n");}return0;}3.#include<stdio.h>#define N 7int main(int argc,char **argv){int buf[N][N];int i,j,k,m,n;int a=0,b=N-1;int count=1;for(i=0;i<(N/2)+(N%2);i++){ for(j=a;j<=b;j++){buf[a][j]=count++;}f or(k=a+1;k<=b;k++){buf[k][b]=count++;}for(m=b-1;m>=a;m-- ) {buf[b][m]=count++;}for(n=b-1;n>a;n--) {buf[n][a]=count++;}a++; b- -;}for(i=0;i<N;i++){ for(j=0;j<N;j++) printf("]",buf[i][j]); printf("\n");}return
i;j++) printf("]",buf[i][j]); printf("\n");}return0;}5.#include<stdio.h>#define N 5int
main(int argc,char **argv){int buf[N][N];int i,j;int a=0,b=N-1;int count=1;for(i=0;i<N/2+N%2;i++){ for(j=a;j<=b;j++) buf[a][j]=count; for(j=a+1;j<= b;j++) buf[jຫໍສະໝຸດ Baidu[b]=count; for(j=b-1;j>=a;j--)buf[b][j]=count; for(j=b-1;j>a;j-- )buf[j][a]=count; count++; a++; b--
buf[k+1]+=buf[k]/10;
buf[k]%=10;
}
}
for(i=n-1;i>=0;i--)
printf("%d",buf[i]);
printf("\n");
return0;
}
2.
#include<stdio.h>int main(int argc,char **argv){int buf[6][6];int i,j;printf("任意输入6个数
0;}4.#include<stdio.h>#define N 5int main(int argc,char **argv){int buf[N][N];int
i,j,k;int count=1;int n=0;for(i=0;i<N;i++){ for(k=0,j=n;j>=0;j--
,k++) buf[j][k]=count++; n++;}for(i=0;i<N;i++){ for(j=0;j<N-
>next=NULL;if(top==NULL){top=newnode; }else{newnode- >next=top; top=newnode; }}int pop(){int flag;link stack;if(top!=NULL){stack=top; top=top->next; flag=stack- >flag; free(stack); }return flag;}int op(char ch){switch(ch){case'+':return1;break; case'-':return2;break; case'*':return3;break; case'/':return4;break; default: return5;}}void nirnava(char *buf,int count)//count个数,buf数组
;}for(i=0;i<N;i++){ for(j=0;j<N;j++) printf("]",buf[i][j]); printf("\n");}return
0;}6.#include<stdio.h>#include<stdlib.h>typedef struct s_node s_list;typedef s_list *link;struct s_node{char ch;int flag;link next;};link top;void push(char ch,int flag){link newnode;newnode=(link)malloc(sizeof(s_list));newnode->ch=ch;newnode- >flag=flag;newnode-
算法设计与分析(第二版)习题答案 主编:吕国英
算法设计与分析(第二版)习题答案(第三章)
第三章:
1.#include<stdlib.h>#include<stdio.h>int main(int argc,char **argv){int n;int i,j,k;int *buf;printf("请输入n的数值:");
scanf("%d",&n);
buf=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
buf[i]=2;
}
for(i=n-2;i>=0;i--)
{
for(j=i;j>=0;j--)
{
buf[j]+=2;
}
}
for(k=0;k<=n-2;k++)
{
if(buf[k]>=10)
{
int bool=1;
int min;
int j;
int i;
int k;
int flag;
for(i=0;i<count;i++)
{
if(buf[i]=='(')
push(buf[i],i);
if(buf[i]==')')
{
flag=pop();
字:");for(i=0;i<6;i++) scanf("%d",&buf[0][i]);for(i=0;i<5;i++){ for(j=0;j<5;j++){buf[i+1][j+1]=buf[i][j];}buf[i+1][0]=buf[i][j];}for(i=0;i<6;i++){ for(j=0;j<6;j++) printf("%d ",buf[i][j]); printf("\n");}return0;}3.#include<stdio.h>#define N 7int main(int argc,char **argv){int buf[N][N];int i,j,k,m,n;int a=0,b=N-1;int count=1;for(i=0;i<(N/2)+(N%2);i++){ for(j=a;j<=b;j++){buf[a][j]=count++;}f or(k=a+1;k<=b;k++){buf[k][b]=count++;}for(m=b-1;m>=a;m-- ) {buf[b][m]=count++;}for(n=b-1;n>a;n--) {buf[n][a]=count++;}a++; b- -;}for(i=0;i<N;i++){ for(j=0;j<N;j++) printf("]",buf[i][j]); printf("\n");}return
i;j++) printf("]",buf[i][j]); printf("\n");}return0;}5.#include<stdio.h>#define N 5int
main(int argc,char **argv){int buf[N][N];int i,j;int a=0,b=N-1;int count=1;for(i=0;i<N/2+N%2;i++){ for(j=a;j<=b;j++) buf[a][j]=count; for(j=a+1;j<= b;j++) buf[jຫໍສະໝຸດ Baidu[b]=count; for(j=b-1;j>=a;j--)buf[b][j]=count; for(j=b-1;j>a;j-- )buf[j][a]=count; count++; a++; b--