求大佬解答 这题如何解答?
编写一个函数,其功能是对数组中的各元素按升序进行排列,并在主程序中调用该函数,使程序能对手动输入的十个数字进行排序并按顺序输出,要求函数定义写在主程序之后,在主程序中需要对函数进行声明。
程序代码:#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编辑过]

程序代码:#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];
}
}
}
}

