1.直接插入排序
void fun(int data[], int n)
{
int i,j,tmp;
for(i=1;i<n;i++)
{
j=i-1;
tmp=data[i];
while(j>=0&&data[j]>tmp)
{
data[j+1]=data[j];
j--;
}
data[j+1]=tmp;
}
}
2.判断一个数是否是素数
void fun(int num)
{
int flag=0;i
for(i=2;i<num;i++)
{
if(num%i==0)
flag=1;
}
if(count==0)
printf("%d是素数",num);
else
printf("%d不是素数",num);
}
3.求s=a+aa+aaa+aaaa+…+aaaaa ,a的值和要加的次数n都使用scanf输入
void fun (int a,int n)
{
int count,tmp=0,sum=0;
while(i<n)
{
tmp+=a;
sum+=tmp;
a*=10;
count++;
}
printf("等式的和为:%d",sum);
}
4.将形参s所指向的字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回eg:若s所指向的字符串为:asd123fgh543df ,处理后的新字符串为:asdfghdf123543;
void fun(char *str,int n)
{
int i,j=0;k=0;
char *p,*q;
p=(char*)malloc(sizeof(char)*n);
q=(char*)malloc(sizeof(char)*n);
for(i=0;str[i]!='\0';i++)
{
if(((str[i]>='a')&&(str[i]<='z')||((str[i]>='A')&&(str[i]<='Z'))))
p[j++]=str[i];
else
q[k++]=str[i];
}
for(i=0;i<k;i++)
{
p[j+i]=q[i];
}
p[j+k]='\0';
puts(p);
}
5.求数组中第二大的数
void fun17()
{
int a[]={23,99,36,58,111,6666,666,2333};
int first,second;
if(*a>*(a+1))
{
first=*a;
second=*(a+1);
}
else
{
first=*(a+1);
second=*a;
}
int i;
int n=sizeof(a)/sizeof(*a);
for(i=2;i<n;i++)
{
if(*(a+i)>first)
{
second=first;
first=*(a+i);
}
else if(*(a+i)>second&&*(a+i)<first)
{
second=*(a+i);
}
}
printf("%d",second);
}