c/c++练习–14
2016-10-25 19:52
274 查看
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); }
相关文章推荐
- C++基础编程练习14
- 剑指offer-算法题练习:part14 c++多线程—2个线程并发售票系统-烽火众智
- C++ 冒泡算法 练习
- OPENGL(14) c++曲面构造 网格线
- C++ 练习及点评(2)
- C++ Primer Plus 第五版中文版 第六章 编程练习6
- 纯纯的课本C++练习
- C++ Primer Plus 第五版 第六章 编程练习 7
- C++练习:一个具有深拷贝功能的字符串类
- c++ 选择排序 练习
- 练习14
- More effective C++ 条款14
- C++学习笔记:图形输出练习
- C++复习 14 重载操作符与转换
- C++ 练习及点评(1)
- (14)'c++:COMPLETE REFERENCE' 第一部分 第二章(表达式) 第六节
- 练习4-14
- C++练习:已知三点,求过这三点的圆
- C++ 冒泡算法 练习
- C++基础练习一