喜欢你的c语言程序,c语言编程题

c语言编程题

关注:184  答案:4  手机版

解决时间 2021-01-19 19:18

提问者十年不久我陪你走

2021-01-18 22:09

有两道c语言的编程题,麻烦高手帮帮忙了

第一道:17个人围坐一圈,顺序编号为1,2,3,…,17。现在从第一个人开始数起,每数到7时,这个人就从圈里出来,再从下一个数重新开始数1,2,…,7,数到第7的这个人也从圈里出来,直到全部17个人从圈里出来为此。例如,前面站出来的4个人是7,14,4和12。编程输出从圈里出来的人的顺序。(利用数组)

第二道:.编写函数,将n个整数的数列进行重新排放,重新排放后的结果为:前段都是奇数,后段都是偶数,并编写主函数完成:

①输入10个整数;

②调用此函数进行重排;

③输出重排后的结果。

谢谢了!

最佳答案

二级知识专家冷月花魂

2021-01-18 23:00

第一个其实用循环链表更方便……不过既然要求数组那就数组吧

#include "stdio.h"

main()

{

int a[17]={0};

int i,j,m=-1;

for(i=0;i<17;i++)

{

for(j=0;j<7;j++)

{

m++;

m=m%17;

if(a[m]==1)

{

j--;

continue;

}

}

a[m]=1;

printf("%d ",m+1);

}

return 0;

}

第二个还可以吧,用了快速排序的思想

#include "stdio.h"

fun(int *a)

{

int i=0,j=9;

int m;

while(i

{

while(i

while(i

m=a[i];

a[i]=a[j];

a[j]=m;

}

return 0;

}

main()

{

int a[10]={0};

int i,j,m=-1;

for(i=0;i<10;i++)

{

scanf("%d",&a[i]);

}

fun(a);

for(i=0;i<10;i++)

{

printf("%d ",a[i]);

}

system("pause");

return 0;

}

希望给分,谢谢

全部回答

1楼亲亲兔耳朵

2021-01-19 03:23

先提一下(1)的思路;

数组元素内容存放下一个出列的元素的下标,从而构成一个出列元素的顺序链表,然后输出这个顺序链表即可

这样逻辑结构比较复杂,要==

2楼劳资喜欢你

2021-01-19 02:07

#include

void main()

{

int a,b,c,n=0,num[1000];

for(a=1;a<=5;a++)

for(b=1;b<=5;b++)

for(c=1;c<=5;c++)

if(a!=b&&a!=c&&b!=c) num[n++]=a*100+b*10+c;

printf("一共有%d个这样的三位数,它们是:\n",n);

for(a=0;a

{

printf("%5d",num[a]);

if((a+1)%10==0)printf("\n");

}

}

3楼椥揂濃

2021-01-19 00:36

给你答一道吧:

#include "stdio.h"

main()

{

int ren[18]; // 1 表示在座,0 表示出局

int i;

// 开始都在座

for ( i = 1; i <= 17; i++)

{

ren[i] = 1;

}

// 开始报号

int wz = 1;// 当前报号位置

for( i=1; i<=17; i++)

{

int bhrs = 0; // 第i次已报号人数

while ( true )

{

bhrs += ren[wz];

if ( bhrs == 7)

{

break;

}

wz++;

if (wz == 18)

{

wz = 1;

}

}

printf("第 %2d 个出局: 位置号 %2d \n", i, wz);

ren[wz] = 0; // 出局

wz++; //下一个开始报数

if (wz == 18)

{

wz = 1;

}

}

return 0;

}

我要举报

如以上信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!

推荐资讯

大家都在看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值