1.冒泡法
/************************************************************************
* File Name :slp1.c (slection problem)
* Copyright :scut,All Rights Reserved.
* Create Data :2012/11/18
* Author :lumotuwe
* Abstruct Description :bubble sort
*
************************************************************************/
#include<stdio.h>
#include<string.h>
int main(int argc, char ** argv)
{
int max;
int i,j,len,num[100];
for(i=0;i<=99;i++) num[i]=0;
if(argc < 2)
printf("input erro\n please input like that "slp 6 13 56 6 123!"\n");
/*
Converting string to int;
*/
for(i=1 ; i<=argc-1 ;i++)
{
len = strlen(argv[i]);
for(j=0; j<len; )
{
num[i-1]+=(int)(argv[i][j]-48);
if(j<len-1)num[i-1]*=10;
j++;
}
}
max = num[0];
for(i=1 ; i<=argc-2; i++)
{
if(max<=num[i])
max = num[i];
}
printf("the largest number is %d\n", max);
return 0;
}
2.好一點的算法
/************************************************************************
* File Name :slp1.c (slection problem)
* Copyright :scut,All Rights Reserved.
* Create Data :2012/11/18
* Author :lumotuwe
* Abstruct Description :new bubble sort
*
************************************************************************/
#include<stdio.h>
#include<string.h>
int main(int argc, char ** argv)
{
int max;
int i,j,len,num[100],snum[50];
for(i=0;i<=99;i++) { num[i]=0;snum[i]=0;}
if(argc < 2)
printf("input error---please input like that "slp 6 13 56 6 123"\n");
for(i=1 ; i<=argc-1 ;i++)
{
len = strlen(argv[i]);
for(j=0; j<len; )
{
num[i-1]+=(int)(argv[i][j]-48);
if(j<len-1)num[i-1]*=10;
j++;
}
}
len=(argc-1)/2;
if(len==0)
{
max=num[0];
}
else
{
for(i=0;i<=len-1;i++)
snum[i]=num[i];
for(j=0;j<=len-2;j++)
{
for(i=0;i<=len-2-j;i++)
if(snum[i]>=snum[i+1])
{
max=snum[i+1];
snum[i+1]=snum[i];
snum[i]=max;
}
}
for(i=len;i<=argc-2;i++)
{ if(num[i]<=snum[len-1]) continue;
else
{for(j=0;j<=len-2;j++)
{
snum[j]=snum[j+1];
}
snum[len-1]=num[i];
}
}
max = snum[len-1];
}
printf("the largest number is %d\n", max);
return 0;
}