云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 北理工C语言答案

北理工C语言答案

  • 62 次阅读
  • 3 次下载
  • 2025/6/3 12:30:47

x[i][j]=k; }

if(a*a==1) printf(\ else

for(i=0;i

j==a-1?printf(\

else j==a-1?printf(\ return 0; } 输入:5 输出:

1 2 6 7 15 3 5 8 14 16 4 9 13 17 22 10 12 18 21 23 11 19 20 24 25

程序实例2:

#include main() {

int i, j, n, a[10][10]; scanf (\

a[0][0]=1;

for ( i=0,j=1;j

a[i][j]=a[i][j-1]+((j==j/2*2)?2*j:1); for (i=1; i

{ for (j=0; j

a[i][j]=(((i+j)==(i+j)/2*2)?a[i-1][j+1]-1:a[i-1][j+1]+1); a[i][j]=a[i-1][j]+((n-i)==(n-i)/2*2?1:(n-i)*2); }

if (n==1) printf(\ else

for ( i=0;i

{ printf(\ for ( j=1;j

printf(\ printf(\ } return 0; } 输入:1

输出:1

27 编码问题(选作)(06秋)

设有一个整形数组 A[0..N-1];存放的元素为 0~N-1 (1

A[i]编码为:在A[0],A[1],?,A[i-1]中比A[i]的值小的个数 (i=1,2,?,N-1) 例如上面数组 A的编码为:B=(0,0,0,3,1,2)

若给出数组A,则可求出其编码。同理,若给出数组A的编码,可求出A中的原数据。 输入:

推导方向(取值为1或2,如为1,则表示根据数组求数组编码;如为2,则表示根据编码反求数组)

数组个数

数组或数组编码元素

输出:数组编码、或数组本身(元素之间以空格分隔) ?? 开 始

输入

N 正向?

Y 初始化数组C

i=2 b[len]=a[len], I=len N N i0?

Y Y

结束 j=1 k=0 b[i]=c[a[i]]

保存K N i++ j

Y

Y K++ a[j]

N

j++

程序实例1:

#include \void main( ) { int i,j,t,n;

int arr[11],ans[11]={ 0 },num[10];

更改数组C i-- scanf(\ for (i = 1;i <= n;i ++) scanf(\ arr[0] = 20; if (t == 1)

{ for (i = 1;i <= n;i ++) for (j = 1;j < i;j ++)

if (arr[i] > arr[j]) ans[i] ++; } else

{ for (i = 0;i < n;i ++) num[i] = i;

for (i = n;i >= 1;i --) { ans[i] = num[arr[i]];

for (j = arr[i];j <= i - 1;j ++) num[j] = num[j + 1]; } }

for (i = 1;i < n;i ++) printf(\ printf(\} 输入: 1 6

4 3 0 5 1 2

输出: 0 0 0 3 1 2 程序实例2:

#include \#include

int cmp(const void *a, const void *b) {

return *( int* ) a - *( int* ) b; }

void main()

{ int mode,i,j,n,a[13],b[13],m[13]; scanf(\

for(i=0;i

for(i=1;i

for(j=0,b[i]=0;j

else

{ for(i=0;i=0;i--) { b[i]=m[a[i]]; m[a[i]]=n;

qsort(m,n,sizeof(int),cmp); } }

for(i=0;i

printf(\输入: 2 7

0 1 0 0 4 5 6

输出: 2 3 1 0 4 5 6 28 洗牌(选作)

假设我们有 2n 张牌,它们以 1, 2, ..., n, n+1, ..., 2n 编号并在开始时保持着这种顺序。一次洗牌就是将牌原来的次序变为 n+1, 1, n+2, 2, ..., 2n, n,也就是将原来的前 n 张牌放到位置 2, 4, ..., 2n,并且将余下的 n 张牌按照他们原来的次序放到奇数位置 1, 3, ..., 2n-1。已经证明对于任何一个自然数 n,这 2n 张牌经过一定次数的洗牌就回到原来的次序。但我们不知道对于一个特定的 n,需要几次洗牌才能将牌洗回原来的次序。 输入:牌张数的一半n,即初始情况下一共有2n张牌 输出:将牌洗回原来的次序所需要的洗牌次数

开 始

输入n

0~2*n-1→i, i→a[ i ]

K=1,i=0 N N 0~2*n-1 K++,i=0 i<2*n? i=a[ i ]? Y Y i

b[2*i]=a[i] b[2*(i-n)-1]=a[i] 输出k 结束 i++

搜索更多关于: 北理工C语言答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

x[i][j]=k; } if(a*a==1) printf(\ else for(i=0;i

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com