1.在主函数输入数组,在自定义有参无返函数中实现简单选择排序(降序)。
#include<stdio.h>
#include<string.h>
void fun(int n,int *p)
{
int i,j,max=0;
for(i=0;i<n-1;i++)
{
max=i;
for(j=i+1;j<n;j++)
if(*(p+max)<*(p+j))
{
max=j;
}
if(max!=i)
{
int t=*(p+max);
*(p+max)=*(p+i);
*(p+i)=t;
}
}
for(i=0;i<n;i++)
{
printf("%d ",*(p+i));
}
putchar(10);
}
int main(int argc, const char *argv[])
{
int n,i;
printf("please enter n:");
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",a+i);
}
fun(n,a);
return 0;
}
2.输入两个字符串,定义有参有返函数实现字符串比较(不允许使用函数)。
#include<stdio.h>
#include<string.h>
int fun(char *p,char *q)
{
int i=0;
while(*(p+i)==*(q+i))
{
if(*(p+i)=='\0')
break;
i++;
}
return *(p+i)-*(q+i);
}
int main(int argc, const char *argv[])
{
char a[10];
printf("please enter a:");
gets(a);
char b[10];
printf("please enter b:");
gets(b);
int cmp=fun(a,b);
if(cmp>0)
printf("a>b\n");
else if(cmp<0)
printf("a<b\n");
else
printf("a=b\n");
return 0;
}
3.主函数输入一个字符串,在自定义有参无返函数中实现单词逆置(使用指针)
输入:“good good study"
输出:“study good good”
#include<stdio.h>
#include<string.h>
void fun(char *p)
{
int i=0,j;
while(*(p+i)!='\0')
{
i++;
}
j=i-1;
int n=j;
i=0;
while(i<j)
{
char t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
i++;
j--;
}
i=0;
j=0;
while(*(p+i)!='\0')
{
while(*(p+j)!='\0' && *(p+j)!=' ')
{
j++;
}
int k=j-1;
while(i<k)
{
char t=*(p+i);
*(p+i)=*(p+k);
*(p+k)=t;
i++;
k--;
}
while(*(p+j)==' ')
{
j++;
}
i=j;
}
}
int main(int argc, const char *argv[])
{
char a[20];
printf("please enter a:");
gets(a);
fun(a);
puts(a);
return 0;
}
4.思维导图