C语言,在一维数组中存入10个整数并排序,其中数据的输入,排序和输出功能自定义函数实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,在一维数组中存入10个整数并排序,其中数据的输入,排序和输出功能自定义函数实现相关的知识,希望对你有一定的参考价值。

#include "stdio.h"
#define N 10
void inputdata(int *p,int n)//输入数据
printf("Input 10 integers...\\n");
while(--n>=0)
scanf("%d",p+n);

void mysort(int *p,int n)//排序
int i,j,k;
printf("\\n");
for(i=0;i<n;i++)
for(k=i,j=k+1;j<n;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("\\n");

int main(int argc,char *argv[])
int a[N];
inputdata(a,N);//调用输入函数
mysort(a,N);//调用排序函数
outdata(a,N);//调用输出函数
return 0;

运行样例如下:

参考技术A #include <stdio.h>

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 \\t", array[i]);
    
    
     printf("\\n");


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("\\n[0] 升序排列\\n");
    printf("[1] 降序排列\\n");
    printf("请选择排序方向:");
    scanf("%d", &b);
    
    sort(a, 10, b);
    
    printf("排序后的数组是:");
    output(a, 10);

参考技术B #include <stdio.h>

const int MAXSIZE = 10;

void input(int a[], int n) 
int i;
printf("输入 %d 整数(空格隔开):\\n",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("\\n");


int main() 
int a[MAXSIZE];
    input(a,MAXSIZE);
printf("排序前:\\n");
show(a,MAXSIZE);
mysort(a,MAXSIZE);
printf("排序后:\\n");
show(a,MAXSIZE);
    return 0;

参考技术C 自定义函数实现的意思是 输入输出不能调用scanf和printf函数 而是自己写输入输出和排序吗

VB程序设计,用随机函数产生10个50以内(包括50)的随机整数存入一维数组。求出最大值并和数组中的首个

用随机函数产生10个50以内(包括50)的随机整数存入一维数组。求出最大值并和数组中的首个元素交换位置;输出交换后的所有数组元素。

主要是用VB程序设计

Private Sub Command1_Click()

  Randomize

  Dim a(9) As Integer, Max As Integer

  Dim k As Integer, i As Integer

  Dim t As Integer

  Max = 0

  For i = 0 To 9

    a(i) = Int(Rnd * 51)

    Print a(i);

    If a(i) > Max Then

      Max = a(i)

      k = i

    End If

  Next i

  Print

  If k > 0 Then

    t = a(0)

    a(0) = a(k)

    a(k) = t

  End If

  For i = 0 To 9

    Print a(i);

  Next i

  Print

  Print

End Sub


参考技术A 不需要控件,程序如下:
Private Sub Form_Click()
Dim A(10) As Integer
Dim I As Integer
Dim K As Integer
Dim J As Integer
Dim T As Integer
Cls
Randomize
Print "自动生成的原始数组是:"
K=1
For I=1 To 10
A(I) =Int(Rnd()*50+1)
Print A(I) ;
If A(I) >A(K) Then K=I
Next
T=A(0)
A(0) =A(K)
A(K) =T
Print
Print "交换以后的数组是:"
For I=1 To 10
Print A(I) ;
Next
Print
End Sub
有什么问题请留言。
参考技术B 根据已有的程序行,缺的内容主要就是一个排序过程。添加一个排序的过程就行了。但是不知道该添在哪里,请说明程序的空白处是在哪里?能不能标出来,比如用括号,星号什么的,标一下需要补充到哪里?
或者,能不能说明一下,各文本框,按钮的功能是什么? d = Val(Text3.Text),这个应该是要插入的数据了,说明text3是用来输入的,Text2.Text = Text2.Text & Str(a(i)),这说明text2是显示排序后的结果的,
那有没有text1?用作什么?两个按钮定义的功能是什么?插入的数据怎么插?是随机插入一个位置,并替换掉原来的数据还是将数组重新定义随机插入后,后面的数向后移?
这些需要说明一下,或者把需要填写的位置标清楚,不然,不好确定该怎么填。

以上是关于C语言,在一维数组中存入10个整数并排序,其中数据的输入,排序和输出功能自定义函数实现的主要内容,如果未能解决你的问题,请参考以下文章

c语言 .从键盘输入10个整数,存到一维数组中,并求这10个整数的和?

用C语言实现一维数组中删除第N个元素的程序怎么写

设计一个一维数组的排序函数p_sort,并调用它对10个整数进行排序。p_sort函数原型如下:

C语言编程:任意输入10个整数放入数组中,然后求其中的最大值和最小值

C语言一维数组排序

VB程序设计,用随机函数产生10个50以内(包括50)的随机整数存入一维数组。求出最大值并和数组中的首个