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