编程论坛
注册
登录
编程论坛
→
C语言论坛
求大佬解答 这题如何解答?
秃头少女
发布于 2019-11-01 20:18, 2280 次点击
编写一个函数,其功能是对数组中的各元素按升序进行排列,并在主程序中调用该函数,使程序能对手动输入的十个数字进行排序并按顺序输出,要求函数定义写在主程序之后,在主程序中需要对函数进行声明。
7 回复
#2
林月儿
2019-11-01 20:27
作业贴?
#3
秃头少女
2019-11-01 20:41
回复 2楼 林月儿
是的_(:з」∠)_
虽然知道这样不太好。。。。。。
#4
纯蓝之刃
2019-11-01 21:00
程序代码:
#include
<stdio.h>
void
prime(
int
*a,
int
n);
int
main()
{
int
a[
10
]={
0
};
int
i=
0
,n=
10
;
printf(
"
请输入10个数字:\n
"
);
for
(i=
0
;i<
10
;i++)
{
printf(
"
请输入第%d个数字:
"
,i+
1
);
scanf(
"
%d
"
,&a[i]);
}
prime(a,n);
for
(i=
0
;i<n;i++)
{
printf(
"
%d
"
,a[i]);
}
return
0
;
}
void
prime(
int
*a,
int
n)
{
int
i=
0
,j=
0
,tmp;
for
(i=
0
;i<n;i++)
{
for
(j=
0
;j<n-i-
1
;j++)
{
if
(a[j]>a[j+
1
])
{
tmp=a[j+
1
];
a[j+
1
]=a[j];
a[j]=tmp;
}
}
}
}
[此贴子已经被作者于2019-11-1 21:07编辑过]
#5
秃头少女
2019-11-01 21:09
回复 4楼 纯蓝之刃
非常感谢!!!
#6
林月儿
2019-11-01 22:12
程序代码:
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
int
main(){
void
sort(
int
arr[],
int
len);
int
size=
0
,arr[
10
];
char
str[
20
];
while
(size<
10
){
printf(
"
pls input value%d:
"
,size+
1
);
scanf(
"
%s
"
,str);
int
val=atoi(str);
int
len=strlen(str);
if
(val==
0
&&(len>
1
||str[len-
1
]!=
'
0
'
)){
printf(
"
\n[error]:%s is not a number!\n\n
"
,str);
size--;
}
arr[size]=val;
size++;
}
printf(
"
before sorted:\n
"
);
for
(
int
i=
0
;i<size;i++){
printf(
"
%d\t
"
,arr[i]);
}
printf(
"
\nafter sorted:\n
"
);
sort(arr,size);
for
(
int
i=
0
;i<size;i++){
printf(
"
%d\t
"
,arr[i]);
}
return
0
;
}
void
sort(
int
arr[],
int
len){
for
(
int
i=
0
;i<len;i++){
for
(
int
j=
0
;j<len-
1
-i;j++){
if
(arr[j]>arr[j+
1
]){
arr[j]=arr[j]+arr[j+
1
];
arr[j+
1
]=arr[j]-arr[j+
1
];
arr[j]=arr[j]-arr[j+
1
];
}
}
}
}
#7
mm1746886443
2019-11-02 16:39
回复 4楼 纯蓝之刃
大佬可以说一下每条代码是什么意思吗
#8
纯蓝之刃
2019-11-02 19:02
#include <stdio.h>
void prime(int *a,int n);
int main()
{
int a[10]={0};
int i=0,n=10;
printf("请输入10个数字:\n");
for(i=0;i<10;i++)
{
printf("请输入第%d个数字:",i+1);
scanf("%d",&a[i]); //输入变量
}
prime(a,n); //将数组首地址和个数传递给函数
for(i=0;i<n;i++)
{
printf("%d ",a[i]); //打印数组
}
return 0;
}
void prime(int *a,int n)
{
int i=0,j=0,tmp;
for(i=0;i<n;i++) //经典冒泡算法
{
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
tmp=a[j+1];
a[j+1]=a[j];
a[j]=tmp;
}
}
}
}
1