C语言,在一维数组中存入10个整数并排序,其中数据的输入,排序和输出功能自定义函数实现
答案:4 悬赏:0 手机版
解决时间 2021-03-09 10:25
- 提问者网友:浩歌待明月
- 2021-03-08 22:09
C语言,在一维数组中存入10个整数并排序,其中数据的输入,排序和输出功能自定义函数实现
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-03-08 23:19
#include "stdio.h"
#define N 10
void inputdata(int *p,int n){//输入数据
printf("Input 10 integers...
");
while(--n>=0)
scanf("%d",p+n);
}
void mysort(int *p,int n){//排序
int i,j,k;
printf("
");
for(i=0;i for(k=i,j=k+1;j if(p[k]>p[j])
k=j;
if(k-i)
j=p[i],p[i]=p[k],p[k]=j;
}
}
void outdata(int *p,int n){//输出
while(n>0)
printf("%d ",p[10-n--]);
printf("
");
}
int main(int argc,char *argv[]){
int a[N];
inputdata(a,N);//调用输入函数
mysort(a,N);//调用排序函数
outdata(a,N);//调用输出函数
return 0;
}运行样例如下:
#define N 10
void inputdata(int *p,int n){//输入数据
printf("Input 10 integers...
");
while(--n>=0)
scanf("%d",p+n);
}
void mysort(int *p,int n){//排序
int i,j,k;
printf("
");
for(i=0;i
k=j;
if(k-i)
j=p[i],p[i]=p[k],p[k]=j;
}
}
void outdata(int *p,int n){//输出
while(n>0)
printf("%d ",p[10-n--]);
printf("
");
}
int main(int argc,char *argv[]){
int a[N];
inputdata(a,N);//调用输入函数
mysort(a,N);//调用排序函数
outdata(a,N);//调用输出函数
return 0;
}运行样例如下:
全部回答
- 1楼网友:痴妹与他
- 2021-03-09 02:27
自定义函数实现的意思是 输入输出不能调用scanf和printf函数 而是自己写输入输出和排序吗
- 2楼网友:蕴藏春秋
- 2021-03-09 02:04
#include
void input(int array[], int num)
{
int i;
for (i = 0; i < num; i++) {
scanf("%d", &array[i]);
}
}
void output(int array[], int num)
{
int i;
for (i = 0; i < num; i++) {
printf("%d ", array[i]);
}
printf(" ");
}
void sort(int array[], int num, int order)
{
int i, j, temp;
if (order == 0) { //升序
for (j = 0; j < n - 1; j++) {
for (i = 0; i < n - 1 - j; i++) {
if(array[i] > array[i + 1]) {
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
}
} else { //降序
for (j = 0; j < n - 1; j++) {
for (i = 0; i < n - 1 - j; i++) {
if(array[i] < array[i + 1]) {
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
}
}
}
int main(void)
{
int a[10], b;
printf("请输入10整数:");
input(a, 10);
printf("输入的数组是:");
output(a, 10);
printf(" [0] 升序排列 ");
printf("[1] 降序排列 ");
printf("请选择排序方向:");
scanf("%d", &b);
sort(a, 10, b);
printf("排序后的数组是:");
output(a, 10);
}
void input(int array[], int num)
{
int i;
for (i = 0; i < num; i++) {
scanf("%d", &array[i]);
}
}
void output(int array[], int num)
{
int i;
for (i = 0; i < num; i++) {
printf("%d ", array[i]);
}
printf(" ");
}
void sort(int array[], int num, int order)
{
int i, j, temp;
if (order == 0) { //升序
for (j = 0; j < n - 1; j++) {
for (i = 0; i < n - 1 - j; i++) {
if(array[i] > array[i + 1]) {
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
}
} else { //降序
for (j = 0; j < n - 1; j++) {
for (i = 0; i < n - 1 - j; i++) {
if(array[i] < array[i + 1]) {
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
}
}
}
int main(void)
{
int a[10], b;
printf("请输入10整数:");
input(a, 10);
printf("输入的数组是:");
output(a, 10);
printf(" [0] 升序排列 ");
printf("[1] 降序排列 ");
printf("请选择排序方向:");
scanf("%d", &b);
sort(a, 10, b);
printf("排序后的数组是:");
output(a, 10);
}
- 3楼网友:西风乍起
- 2021-03-09 00:30
#include
const int MAXSIZE = 10;
void input(int a[], int n) {
int i;
printf("输入 %d 整数(空格隔开): ",n);
for(i = 0; i < n; ++i)
scanf("%d",&a[i]);
}
void mysort(int a[], int n) {
int i,j,k,t;
for(i = 0; i < n - 1; ++i) {
k = i;
for(j = i + 1; j < n; ++j) {
if(a[k] > a[j]) k = j;
}
if(i != k) {
t = a[i];
a[i] = a[k];
a[k] = t;
}
}
}
void show(int a[], int n) {
int i;
for(i = 0; i < n; ++i)
printf("%d ",a[i]);
printf(" ");
}
int main() {
int a[MAXSIZE];
input(a,MAXSIZE);
printf("排序前: ");
show(a,MAXSIZE);
mysort(a,MAXSIZE);
printf("排序后: ");
show(a,MAXSIZE);
return 0;
}
const int MAXSIZE = 10;
void input(int a[], int n) {
int i;
printf("输入 %d 整数(空格隔开): ",n);
for(i = 0; i < n; ++i)
scanf("%d",&a[i]);
}
void mysort(int a[], int n) {
int i,j,k,t;
for(i = 0; i < n - 1; ++i) {
k = i;
for(j = i + 1; j < n; ++j) {
if(a[k] > a[j]) k = j;
}
if(i != k) {
t = a[i];
a[i] = a[k];
a[k] = t;
}
}
}
void show(int a[], int n) {
int i;
for(i = 0; i < n; ++i)
printf("%d ",a[i]);
printf(" ");
}
int main() {
int a[MAXSIZE];
input(a,MAXSIZE);
printf("排序前: ");
show(a,MAXSIZE);
mysort(a,MAXSIZE);
printf("排序后: ");
show(a,MAXSIZE);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯