指针的学习
2024-01-09 11:55:12
在自定义函数中使用指针
在主函数输入数组,在自定义有参无返函数中实现简单选择排序(降序)
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 void Select(int n,int *p);
5 void Output(int n,int *p);
6 int main(int argc, const char *argv[])
7 {
8 //自定义函数中使用指针实现简单选择排序
9 int n;
10 printf("请输入数组长度");
11 scanf("%d",&n);
12 int arr[n];
13 for(int i=0;i<n;i++)
14 {
15 printf("请输入数组元素%d的值\n",i);
16 scanf("%d",arr+i);
17 }
18 Select(n,arr);
19 Output(n,arr);
20 return 0;
21 }
22
23
24
25 void Select(int n,int *p)
26 {
27 int num;
28 for(int i=0;i<n;i++)
29 {
30 for(int j=0;j<n;j++)
31 {
32 if(*(p+i)>*(p+j))
33 {
34 int t=*(p+i);
35 *(p+i)=*(p+j);
36 *(p+j)=t;
37 }
38 }
39 }
40 }
41 void Output(int n,int *p)
42 {
43 for(int i=0;i<n;i++)
44 {
45 printf("排序后数组元素%d的值%d\n",i,*(p+i));
46 }
47 }
48
?效果图
输入两个字符串,定义有参有返函数实现字符串比较(不允许使用函数)
4 int Strcmp(char *p,char *q);
5 int main(int argc, const char *argv[])
6 {
7 //函数中使用指针实现Strcmp
8 char a[40]="";
9 char b[40]="";
10 printf("请输入数组a的字符串");
11 gets(a);
12 printf("请输入数组b的字符串");
13 gets(b);
14 int num=Strcmp(a,b);
15 if(num>0)
16 {
17 printf("a>b\n");
18 }
19 if(num<0)
20 {
21 printf("a<b\n");
22 }
23 if(num==0)
24 {
25 printf("a=b\n");
26 }
27 return 0;
28 }
29
30
31 int Strcmp(char *p,char *q)
32 {
33 int i=0;
34 while(*(p+i)==*(q+i)&&*(p+i)!='\0')
35 i++;
36 if(*(p+i)-*(q+i)>0)
37 return 1;
38 else if(*(p+i)-*(q+i)<0)
39 return -1;
40 else if(*(p+i)-*(q+i)==0)
41 return 0;
42 }
效果图
主函数输入一个字符串,在自定义有参无返函数中实现单词逆置(使用指针)
例如:输入: “good good study”
输出 “study good good”
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 void Trans(char *start,char *end,char *str);
5 int main(int argc, const char *argv[])
6 {
7 //自定义函数使用指针完成单词逆置
8 char str[40];
9 printf("请输入字符串:");
10 gets(str);
11 char *start=str;
12 char *end=str+strlen(str)-1;
13 Trans(start,end,str);
14 puts(str);
15 return 0;
16 }
17
18
19 void Trans(char *start,char *end,char *str)
20 {
21 while(start<end)
22 {
23 char t=*start;
24 *start=*end;
25 *end=t;
26 start++;
27 end--;
28 }
29 puts(str);
30 end=NULL;
31 char *temp=str;
32 while(*start!='\0')
33 {
34 temp=start;
35 while(*start!=' '&&*start!='\0')
36 start++;
37 end=start-1;
38 while(temp<end)
39 {
40 char t=*temp;
41 *temp=*end;
42 *end=t;
43 temp++;
44 end--;
45 puts(str);
46 }
47 end=start;
48 while(*end==' '&&*end!='\0')
49 {
50 end++;
51 }
52 start=end;
53 }
54 }
效果图
文章来源:https://blog.csdn.net/H_oUmU/article/details/135462714
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!