//1.输⼊入10个整数,将其中最⼩小的数与第⼀一个数对换,把最⼤大的数和最后⼀一个数对换,指针实现
void swap(int *p,int i,int j)
{
int temp=p[i];
p[i]=p[j];
p[j]=temp;
}
void getMaxMin(int *array,int n)
{
int index_min=0,index_max=0;
for (int i=0; i<10; i++) {
if (array[index_min] > array[i]) {
index_min=i;
}
if (array[index_max] < array[i]) {
index_max=i;
}
}
swap(array,0,index_min);
swap(array, n-1, index_max);
}
void printArray(int *array,int n)
{
for (int i=0; i<n; i++) {
printf("%3d",*(array+i));
}
}
//2.输⼊入10个等长的字符串。⽤用另一个函数对它们排序,然后输出10个已经排好的字符串。
void swapStr(char *p[],int i,int j)
{
char *temp=p[i];
p[i]=p[j];
p[j]=temp;
}
void sortStr(char * array[],int n)
{
//升序排列
for (int i=0; i<n-1; i++) {
for (int j=0; j<n-1-i; j++) {
if (strcmp(array[j], array[j+1]) > 0) {
swapStr(array,j, j+1);
}
}
}
}
void printStr(char * array[],int n)
{
for (int i=0; i<n; i++) {
printf("%s\n",*(array+i));
}
}
//3.有⼀一字符串,包含数字与字母,编程去除数字。1、要求在原字符串中操作 2、使⽤用指针处理。
void delNum(char *p)
{
int i=0,j=0;
if (p!=NULL) {
while (p[j]!='\0') {
if (p[j]>='0' && p[j]<='9') {
j++;
}
else
{
p[i]=p[j];
i++;
j++;
}
}
p[i]='\0';
}
}
//4.练习使⽤用指针和地址传递,编写函数swap交换两个浮点数,编写main函数使其实现以下功能:
//1)由⽤用户输⼊入3个数x、y、z的值;
//2)调⽤用函数swap交换3个数中的最⼤大数和最⼩小数;
//3)输出交换后3个数的值。
void SwapFloat(float *x,float *y)
{
float temp=*x;
*x=*y;
*y=temp;
}
int main(int argc, const char * argv[]) {
//1.
// int array[10]={32,54,32,84,43,9,43,2,4,19};
// getMaxMin(array, 10);
// printArray(array, 10);
//2.
// char *str[10]={"xiaowang","liming","zhangsan","mazi","anmi","shuqi","gaoyuan","masi","sanxing","zhouliu"};
// sortStr(str,10);
// printStr(str, 10);
//3.
// char str[]="h3j4a5h4a55f33df5fda45gaar";
// delNum(str);
// printf("%s",str);
//4.
float x,y,z;
scanf("%f %f %f",&x,&y,&z);
float max=x > y? (x > z? x:z):(y >z?y:z);
float min=x < y? (x < z? x:z):(y <z?y:z);
SwapFloat(&max,&min);
printf("%f,%f,%f\n",x,y,z);
return 0;
void swap(int *p,int i,int j)
{
int temp=p[i];
p[i]=p[j];
p[j]=temp;
}
void getMaxMin(int *array,int n)
{
int index_min=0,index_max=0;
for (int i=0; i<10; i++) {
if (array[index_min] > array[i]) {
index_min=i;
}
if (array[index_max] < array[i]) {
index_max=i;
}
}
swap(array,0,index_min);
swap(array, n-1, index_max);
}
void printArray(int *array,int n)
{
for (int i=0; i<n; i++) {
printf("%3d",*(array+i));
}
}
//2.输⼊入10个等长的字符串。⽤用另一个函数对它们排序,然后输出10个已经排好的字符串。
void swapStr(char *p[],int i,int j)
{
char *temp=p[i];
p[i]=p[j];
p[j]=temp;
}
void sortStr(char * array[],int n)
{
//升序排列
for (int i=0; i<n-1; i++) {
for (int j=0; j<n-1-i; j++) {
if (strcmp(array[j], array[j+1]) > 0) {
swapStr(array,j, j+1);
}
}
}
}
void printStr(char * array[],int n)
{
for (int i=0; i<n; i++) {
printf("%s\n",*(array+i));
}
}
//3.有⼀一字符串,包含数字与字母,编程去除数字。1、要求在原字符串中操作 2、使⽤用指针处理。
void delNum(char *p)
{
int i=0,j=0;
if (p!=NULL) {
while (p[j]!='\0') {
if (p[j]>='0' && p[j]<='9') {
j++;
}
else
{
p[i]=p[j];
i++;
j++;
}
}
p[i]='\0';
}
}
//4.练习使⽤用指针和地址传递,编写函数swap交换两个浮点数,编写main函数使其实现以下功能:
//1)由⽤用户输⼊入3个数x、y、z的值;
//2)调⽤用函数swap交换3个数中的最⼤大数和最⼩小数;
//3)输出交换后3个数的值。
void SwapFloat(float *x,float *y)
{
float temp=*x;
*x=*y;
*y=temp;
}
int main(int argc, const char * argv[]) {
//1.
// int array[10]={32,54,32,84,43,9,43,2,4,19};
// getMaxMin(array, 10);
// printArray(array, 10);
//2.
// char *str[10]={"xiaowang","liming","zhangsan","mazi","anmi","shuqi","gaoyuan","masi","sanxing","zhouliu"};
// sortStr(str,10);
// printStr(str, 10);
//3.
// char str[]="h3j4a5h4a55f33df5fda45gaar";
// delNum(str);
// printf("%s",str);
//4.
float x,y,z;
scanf("%f %f %f",&x,&y,&z);
float max=x > y? (x > z? x:z):(y >z?y:z);
float min=x < y? (x < z? x:z):(y <z?y:z);
SwapFloat(&max,&min);
printf("%f,%f,%f\n",x,y,z);
return 0;