[第二部分]非常基础的题每题10分,在线等急!!刚才未给分的进来回复!

surferc 2003-07-24 04:55:05
对不起刚才第一次发贴所以还不太清楚有几位没能给分,或没给全分。
请刚才那几位回答问题而没有得到分数和全部分数的朋友进来回复一下。
下面是第二部分的题
1输入3个整数,按由大到小的顺序输出
2有N个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的原来第几号的那位?
3写一函数,将一个3X3的整形矩阵转置。
4 用指向指针的方法对5个字符串排序并输出
5用指向指针的方法对N个整数排 序并输出。要求将排序单独写成一个函数。整数和N在主函数中输入。最后在主函数中输出。
...全文
54 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
villager 2003-07-24
  • 打赏
  • 举报
回复
bd
cr2003 2003-07-24
  • 打赏
  • 举报
回复
mark
eminemTM 2003-07-24
  • 打赏
  • 举报
回复
//上面的是第4题。

//这是第2题的C/C++混血版本.
//~#
#include <iostream>

// 参数说明: nn 参加的总人数
// ss 报数开始的那个人
// mm 报数的周期
// 在你的问题中 nn=N, ss=1, mm =3
void Josephus(int nn,int ss,int mm)
{
int *ids=new int[nn];
for(int i=0;i<nn-1;i++)
ids[i]=i+1; // point to the next one
ids[nn-1]=0;
int cur=ss-1,pre;
if( cur == 0 )
pre=nn-1;
else
pre=cur-1;
int total=nn,counter=0;
while(total > 0)
{
if( ++counter == mm )
{
std::cout<<cur+1<<" > ";
ids[pre]=ids[cur];
cur=ids[cur];
total--;
counter=0;
}
else
{
pre=cur;
cur=ids[cur]; // to the next one
}
}
delete [] ids;
}


int main()
{
int n,s,m;
std::cin>>n>>s>>m;
Josephus(n,s,m);
return 0;
}
eminemTM 2003-07-24
  • 打赏
  • 举报
回复
#include <stdio.h>
#define NUMX 5
void main()
{
char buf[NUMX][BUFSIZ];
char tmp[BUFSIZ];
int i,j,k;
for(i=0;i<NUMX;i++){
scanf("%s",buf[i]);
}
for(i=0;i<NUMX-1;i++){
k=i;
for(j=i+1;j<NUMX;j++){
if( strcmp( buf[k],buf[j] ) > 0 )
k=j;
}
if( i!=k){
strcpy(tmp,buf[i]);
strcpy(buf[i],buf[k]);
strcpy(buf[k],tmp);
}
}

for(i=0;i<NUMX;i++)
puts(buf[i]);
}
eminemTM 2003-07-24
  • 打赏
  • 举报
回复
/* 楼主: 抱歉, 第一部分的查找最长单词的函数应如下 */
/* 参数: 输入串
返回: 最长单词串(静态char*)
*/
const char *longgestStr(char *str)
{
char *cp=str,*rv=0;
static char buf[512];
size_t i,clen=0,max=0;
for(i=0;i<strlen(str);i++){
if( isalpha(str[i]) ){
clen++;
}
else
{
if( max < clen ){
rv=cp;
max=clen;
}
clen=0;
cp=&str[i+1];
}
}
if( rv == 0)
return 0;
memcpy(buf,rv,max);
buf[max]=0;
return buf;
}
820830 2003-07-24
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()

{
int i,j,aa[3][3]={1,2,3,4,5,6,7,8,9},bb[3][3];
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)

bb[j][i]=aa[i][j];
}
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)

printf("%d",bb[i][j]);
printf("\n");
}
}



69,373

社区成员

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

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