为了账号安全,请及时绑定邮箱和手机立即绑定

请问如下内容,哪步错了呢?把a[i]赋给b[i]的地方?

请问如下内容,哪步错了呢?把a[i]赋给b[i]的地方?

C PHP
哈士奇WWW 2022-04-14 17:11:55
已知一个数组a大小为20个元素,用随机函数生成20个整数填充该数组,再将该数组元素从小到大排序。现要求任意输入三个整数,要求将该三个数插入数组中合适的位置,使得这个数组中的23个元素仍然按照从小到大的顺序排列,并将数组按下标顺序输出拜托了,好烦一直想不出来~#include <stdio.h>#include <stdlib.h>#include <time.h>main(){int a[20],i,k,n,b[23],l,m,w;srand(time(NULL));for(i=0;i<20;i++)a[i]=rand()%100;for(i=1;i<=19;i++)for(k=0;k<=19-i;k++)if(a[k]>a[k+1]){n=a[k],a[k]=a[k+1],a[k+1]=k;}for(i=0;i<20;i++)printf("%d\n",a[i]);printf("input three number:\n");scanf("%d%d\%d",&l,&m,&w);for(i=0;i<20;i++)a[i]=b[i];b[20]=l,b[21]=m,b[22]=w;for(i=1;i<=22;i++)for(k=0;k<=22-i;k++)if(b[k]>b[k+1]){n=b[k],b[k]=b[k+1],b[k+1]=k;}for(i=0;i<=22;i++)printf("b[%d]=%d\n",i,b[i]);getch();}哪错了呢?把a[i]赋给b[i]的地方?
查看完整描述

2 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

技术要点:随机数,冒泡排序.
(如果c语言这两项不是很熟,请查阅网上资料)

思路:
1.先产生20个随机数,装入大小为20的数组a.
2.利用冒泡法,使数组a中的数从小到大排序.
3.定义一个大小为23的数组b,将数组a中的数装入b的前20位,再把任意输入的三个整数装入b的后三位.
4.再进行一次冒泡排序.
5.按下标顺序输出.

由于本人专精c#,c的有些语法不是很熟了,只能给你点到这个地方.

查看完整回答
反对 回复 2022-04-19
?
狐的传说

TA贡献1804条经验 获得超3个赞

Sub SORT_ARRAY()

Dim X, Y, Z, TEMP
Dim A_ARRAY(20)
Dim B_ARRAY(23)
Dim I, J, SWITCH
'This variable is used to control the loop
SWITCH = 0
'Move value to array
For I = 1 To 20
'array a is for 20 elements data
A_ARRAY(I) = Sheet1.Cells(I, 1).Value
'array b is for 23 elements data including 3 user input data
B_ARRAY(I) = Sheet1.Cells(I, 1).Value
Next

B_ARRAY(21) = Sheet1.Cells(21, 1).Value
B_ARRAY(22) = Sheet1.Cells(22, 1).Value
B_ARRAY(23) = Sheet1.Cells(23, 1).Value

'Sort Array
Do Until SWITCH = 1
SWITCH = 1

For I = 1 To 22
J = I + 1

If B_ARRAY(I) > B_ARRAY(J) Then
TEMP = B_ARRAY(I)
B_ARRAY(I) = B_ARRAY(J)
B_ARRAY(J) = TEMP
SWITCH = 0
End If

Next
Loop

'Move value back to excel cells
For I = 1 To 23
Cells(I, 1).Value = B_ARRAY(I)
Next

End Sub

以上这段程序是用excel vba写的 经过测试可以用我想你那边的程序 也可以套用这个逻辑



查看完整回答
反对 回复 2022-04-19
  • 2 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信