...数字个数不确定。然后将其从大到小排序。。求代码 谢谢
发布网友
发布时间:2024-09-17 21:58
我来回答
共3个回答
热心网友
时间:2024-09-28 01:32
/* 在命令 行输入 排序的数字 */
#include<stdio.h>
#include<stdlib.h>
void sort_(float *,int);
void printf_(char *,float *);
int
main(int argc ,char *argv[])
{ int i;
int b=0;
float *ptr;
char *endptr;
if(argc == 1)
{
printf("请输入要排序的数字\n");
exit(1);
}
if( (ptr = malloc(sizeof(float) * (argc-1)) ) == NULL){
perror("malloc \n");
exit(1);
}
/*将字符串 转变为数字*/
for( i = 1; i<argc ; i++)
{
ptr[b] = strtof(argv[i],&endptr);
if(strcmp(argv[i],endptr) == 0)
{printf("你输入的%s 是错误的\n",argv[i]);
continue;
}
b++;
}
ptr[b]='\0';
/*排序所得数字串,把输入错的丢弃*/
sort_(ptr,b);
printf_("最后的排序结果是 \n",ptr);
return(0);
}
void
printf_(char *str , float *ptf)
{
printf("%s",str);
int i;
for(i = 0; ptf[i] != '\0' ; i++)
printf("%12.3f",ptf[i]);
printf("\n");
}
/*冒泡排序*/
void
sort_(float* a,int n)//n为数组a的元素个数
{int i,j;
float temp;
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
{
if(a[i]<a[i+1])//数组元素大小按升序排列
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
热心网友
时间:2024-09-28 01:34
给邮箱,我发给你。。。
热心网友
时间:2024-09-28 01:36
以什么为数字的结束符?