算法设计与分析(第二版)习题答案(第三章)
2010 年 06 月 15 日 星期二 下午 03:51
算法设计与分析(第二版)
主编:吕国英
习题答案
第三章:
1.
#include
#include
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=0;i--)
{
}
for(j=i;j>=0;j--)
{
}
buf[j]+=2;
for(k=0;k<=n-2;k++)
{
}
if(buf[k]>=10)
{
}
buf[k+1]+=buf[k]/10;
buf[k]%=10;
for(i=n-1;i>=0;i--)
printf("%d",buf[i]);
printf("\n");
return 0;
}
2.
#include
int main(int argc,char **argv)
{
int buf[6][6];
int i,j;
printf("任意输入 6 个数字:");
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");
return 0;
}
3.
#include
#define N 7
int 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++;
for(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
#define N 5
int main(int argc,char **argv)
{
int buf[N][N];
int i,j,k;
int count=1;
int n=0;
for(i=0;i=0;j--,k++)
buf[j][k]=count++;
n++;
for(i=0;i
#define N 5
int 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
=a;j--)
buf[b][j]=count;
for(j=b-1;j>a;j--)
buf[j][a]=count;
count++;
a++;
b--;
for(i=0;iprintf("\n");
}
return 0;
}
6.
#include
#include
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;