2道C语言题目不会做,谁帮忙看看

Flood1984 2005-03-16 05:18:50
这2题怎么也想不到答案,连算法都想不通,
哪位看出名堂了麻烦讲讲,小弟谢过。

/*将A,B两数组中的数合并到C中,并排序*/
void link(int a[],int n,int b[],int m,int *c)
{
int i,j;
for(i<n||j<m)
*c++=a[i]<b[j]?a[i++]:b[j++];
while(________)
*c++=a[i++];
while(________)
*c++=b[j++];
}

/*检测n是否为回文*/
int symm(long n)
{
long i,m;
________;
________;
while(i)
{
m=m*10+i%10;
___________;
}
return _______;
}
...全文
470 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kobefly 2005-03-17
  • 打赏
  • 举报
回复
/*将A,B两数组中的数合并到C中,并排序*/
void link(int a[],int n,int b[],int m,int *c)
{
int i,j;
for(i<n||j<m)
*c++=a[i]<b[j]?a[i++]:b[j++];
while(________)
*c++=a[i++];
while(________)
*c++=b[j++];
}
这个是很简单的排序啊
在数据结构上就有介绍

分别是考虑哪个数组尚未结束,直接将其剩余部分放在c的末尾
i<n, j < m

还有上边xuelong_zl(点雨点[有天一个女人深情的对我说"你给我滚"]) ( ) 信誉:100
兄弟说了
这里的i,j都没有初始化
对于局部变量来说,这是很危险的,也是基本会出错的
后边也应该是与而不是或
否则根本不会有下边的语句了

--------------------------------------------------------------

/*检测n是否为回文*/
int symm(long n)
{
long i,m;
________;//i = n;
________;//m = 0;
while(i)
{
m=m*10+i%10;
___________;//i /=10;
}
return _______;//(m == n);
}
这个问题
主要是采用原数除以10,待比较数从原数的最低位开始,位权逐步变大,来比较是否相等
xuelong_zl 2005-03-17
  • 打赏
  • 举报
回复
第一题中for(i<n||j<m)应为for (i=0,j=0;i<n&&j<m)
xiaosilent 2005-03-16
  • 打赏
  • 举报
回复
学到了
zkx21st 2005-03-16
  • 打赏
  • 举报
回复
第一题:
/*将A,B两数组中的数合并到C中,并排序*/
void link(int a[],int n,int b[],int m,int *c)
{
int i,j;
for(i<n||j<m)
*c++=a[i]<b[j]?a[i++]:b[j++];
while(i<n) //当n>m的时候,数组a中剩余的n-m个元素添加到数组c中
*c++=a[i++];
while(j<m)//当n<m的时候,数组b中剩余的m-n个元素添加到数组c中

*c++=b[j++];
}
dongpy 2005-03-16
  • 打赏
  • 举报
回复
第二题 就是把n倒序拼成一个整数,然后比较和原数是否相等。
pcboyxhy 2005-03-16
  • 打赏
  • 举报
回复
第二题
i = n;
m = 0;
i /= 10;
m; // ( m==n )
pcboyxhy 2005-03-16
  • 打赏
  • 举报
回复
for(i<n || j<m) //while(i<n && j<m)

while( i<n )

while( j<m )
ipgk 2005-03-16
  • 打赏
  • 举报
回复
第二题
i = n;
m = 0;
i /= 10;
m;

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧