c/c++练习–14
来源:互联网 发布:java汽车租赁系统 编辑:程序博客网 时间:2024/05/21 15:03
c/c++练习–14
- 习题来源:C语言经典编程282例
131.使用指针实现整数排序
输入3个整数,将这3个整数按照由大到小的顺序输出
#include <stdio.h>void sort(int *p,int size){ int *n=p,*m; int tmp; for(;n<p+size;n++){ for(m=n+1;m<p+size;m++){ if(*n<*m){ tmp = *n; *n = *m; *m =tmp; } } }}int main(void){ int a[3]; printf("请输入3个整数:"); for(int i=0;i<3;i++) scanf("%d",a+i); sort(a,3); for(int i=0;i<3;i++) printf("%d",*(a+i)); return(0);}
132.指向结构体变量的指针
通过结构体指针变量实现在窗体上显示学生信息。
#include <stdio.h>#include <string.h>struct student{ char name[10]; int number; int age; float score;};int main(void){ struct student s,*p=&s; strcpy(p->name,"xiaoming"); p->age = 18; p->number = 1122; p->score = 99.1; printf("Name:%s\nNumber:%d\nAge:%d\nScore:%f\n",p->name,p->number,p->age,p->score); return(0);}
133.使用指针输出数组元素
#include <stdio.h>#include <string.h>int main(void){ int a[5]={1,2,3,4,5}; int *p=a; for(;p<a+5;) printf("%d\t",*p++); return(0);}
134.使用指针查找数列中的最大值和最小值。
#include <stdio.h>#include <string.h>int main(void){ int a[5]={1,2,3,4,5}; int *p=a+1,m=*a,mi=*a; for(;p<a+5;) { m = m>*p++?m:*p; mi = mi<*p++?mi:*p; } printf("max:%d\t min:%d",m,mi); return(0);}
135.使用指针的指针输出字符串
#include <stdio.h>#include <string.h>int main(void){ char *s[]={"agc","bcd","efg"}; char **p=s; for(;p<s+3;) puts(*p++); return(0);}
136.使用指向指针的指针对字符串排序
#include <stdio.h>#include <string.h>void sort(char **p,int size){ char *tmp; for(int i=0;i<size;i++){ for(int j=i+1;j<size;j++){ if(strcmp(p[i],p[j])>0){ tmp = p[j]; p[j] = p[i]; p[i] = tmp; } } }}int main(void){ char *s[]={"agc","hcd","efg"}; char **p=s; sort(p,3); for(;p<s+3;) puts(*p++); return(0);}
137.使用返回指针的函数查找最大值
#include <stdio.h>#include <string.h>int* max_num(int *num,int size){ int *m=num,*p=num; for(;p<num+size;) m = *m>*p?m:p++; return(m);}int main(void){ int s[6]={1,2,3,4,5,6}; printf("%d",*max_num(s,6)); return(0);}
138.使用指针连接两个字符串
#include <stdio.h>#include <string.h>char* str_cmt(char *dest,char* sou){ char *p,*q=sou; p = dest+strlen(dest); while(*q != '\0') *p++ = *q++; return(dest);}int main(void){ char str[100] = "abcd"; char str2[] = "edf"; puts(str_cmt(str,str2)) ; return(0);}
139.指针实现逆序存放数组
#include <stdio.h>#include <string.h>void inv(int *dest,int size){ int *p=dest,*q=dest+size-1; int tmp; while(p<q) { tmp = *p; *p = *q; *q = tmp; p++; q--; }}int main(void){ int a[]={1,2,3,4,5}; inv(a,5) ; for(int i=0;i<5;i++) printf("%d\t",a[i]); return(0);}
140.用指针数组构造字符串数组
#include <stdio.h>int main(void){ char *s[]={"agc","hcd","efg"}; char **p=s; for(;p<s+3;) puts(*p++); return(0);}
0 0
- c/c++练习–14
- c练习14
- C练习
- C练习
- C 练习
- c练习
- C练习
- C练习
- c 练习
- c/c++练习–03
- c/c++练习–04
- c/c++练习–05
- c/c++练习–06
- c/c++练习–07
- c/c++练习–08
- c/c++练习–09
- c/c++练习–10
- c/c++练习–11
- Spark性能优化:shuffle调优
- 如何用IDEA一步一步开发WebService客户端程序
- 工厂模式
- Android_获取手机版本型号
- 主席树 HDOJ2665 && POJ2104 && POJ2761
- c/c++练习–14
- Mybatis resultMap空值映射问题解决
- POJ 3125 Printer Queue(用队列模拟过程)
- GDI+编程
- linux文件系统简介
- CF 1C Ancient Berland Circus
- java 定时任务的几种实现方式
- Android 沉浸式状态栏攻略 让你的状态栏变色吧
- Spring定时任务的几种实现