自我提升计划 善于利用指针课后习题1
自我学习平台:利用在线课程进行自我提升 #生活技巧# #自我提升技巧# #技能提升指南#
指针是c语言的灵魂,为了更好的掌握c语言,作者想在寒假之余,补强自己的指针能力,先浅浅码一下c程序设计(第五版)的善于利用指针的课后习题1-3题
1.输入3个整数,按由小到大的顺序排序
解法一 选择法
#include<stdio.h>
#include<stdlib.h>
void paixv(int *p)
{
int k;
int j,m,x;
for (j=0;j<2;j++)
{
k=j;
for (m=j+1;m<3;m++)
{
if (*(p+k)>*(p+m))
x=*(p+k);
*(p+k)=*(p+m);
*(p+m)=x;
}
}
for (j=0;j<3;j++)
printf("%d ",*(p+j));
}
int main()
{
int *p1;
int i;
p1=(int *)malloc(3*sizeof(int));
for (i=0;i<3;i++)
scanf("%d",p1+i);
paixv(p1);
free(p1);
return 0;
解法二 冒泡法
#include<stdio.h>
#include<stdlib.h>
void maopao(int *p)
{
int j;
int m;
int temp;
for (j=0;j<2;j++)
for (m=0;m<2-j;m++)
{
if (*(p+m)>*(p+m+1))
{
temp=*(p+m+1);
*(p+m+1)=*(p+m);
*(p+m)=temp;
}
}
for (m=0;m<3;m++)
printf("%d ",*(p+m));
}
int main()
{
int *p1;
int i;
p1=(int *)malloc(3*sizeof(int));
for (i=0;i<3;i++)
scanf("%d",p1+i);
maopao(p1);
return 0;
}
2.输入3个字符串,按由小到大的顺序输出
#include<stdio.h>
#include<string.h>
void paixv(char (*p)[100])
{
char b[100];
int i;
if (strcmp(*(p+0),*(p+1))>0)
{
strcpy(b,*(p+1));
strcpy(*(p+1),*(p+0));
strcpy(*(p+0),b);
}
if (strcmp(*(p+1),*(p+2))>0)
{
strcpy(b,*(p+2));
strcpy(*(p+2),*(p+1));
strcpy(*(p+1),b);
}
if (strcmp(*(p+0),*(p+1))>0)
{
strcpy(b,*(p+1));
strcpy(*(p+1),*(p+0));
strcpy(*(p+0),b);
}
for (i=0;i<3;i++)
puts(*(p+i));
}
int main()
{
char a[3][100];
char (*p1)[100];
int i;
p1=NULL;
for (i=0;i<3;i++)
gets(*(a+i));
p1=a;
paixv(p1);
return 0;
3.输入10个整数,将其最小的数与第一个数对换,把最大的数与最后一个数对换
#include<stdio.h>
void chazhao(int *p)
{
int max,min;
int i,j,m,n1,n2;
max=*(p+0);
min=*(p+0);
for (i=1;i<10;i++)
{
if (max<*(p+i))
{
max=*(p+i);
n1=i;
}
}
for (j=1;j<10;j++)
{
if (min>*(p+j))
{
min=*(p+j);
n2=j;
}
}
m=*(p+0);
*(p+0)=min;
*(p+n2)=m;
m=*(p+9);
*(p+9)=max;
*(p+n1)=m;
}
int main()
{
int a[10];
int i;
int *p1;
p1=a;
for (i=0;i<10;i++)
scanf("%d",(p1+i));
chazhao(p1);
for (i=0;i<10;i++)
printf("%d ",*(p1+i));
return 0;
如果有错误,或者各位看官有更好的思路请大家指点。
网址:自我提升计划 善于利用指针课后习题1 https://www.yuejiaxmz.com/news/view/843192
相关内容
教师自我提升计划 教师学习计划自我提升工作计划(通用11篇)
拆解计划,养成好习惯,利用碎片时间自我提升
教师自我能力提升计划(通用16篇)
自我能力提升计划与行动计划10篇
学习提升计划
自我提升计划(精选21篇)
自我提升及改进计划
自我提升计划精选15篇
自我工作能力提升计划(通用14篇)