第十次上机实验
来源:互联网 发布:刚开始做淘宝,卖什么好 编辑:程序博客网 时间:2024/04/28 00:13
任务1:
输入一个字符串和一个正整数x,将该字符串中的后x个字符复制到另一个字符串y中,再对y串的内容前后倒置后存入数组z中并输出。
要求:用指针访问数组元素、用函数getx(char *c1)实现复制、用函数getr(char *c2)实现倒置。
运行示例
Enter a string: abcABCD
Enter an integer: 4
The new string is DCBA
拷贝之程序(加理解):
#include<stdio.h> #include<string.h> //包含字符串处理函数的头文件,可直接调用现有的字符串处理函数void getx(char *c1); void getr(char *c2); int main() { char str1[20]; // 长度为20,strlen printf("Enter a string:"); gets(str1); //输入字符串,存入str表示的空间 printf("Enter an integer:"); getx(str1); // ??? return 0; } void getx(char *c1) //实现复制{ int n,i,j=0,r=0; char str2[20]; //定义str2 scanf("%d",&n); //n是什么 while(*(c1+j)!='\0') //指针指向了输入的字符串所在的地址;判断字符串是否到头 { j++; } for(i=j-n;i<j;i++) //循环 ??? { str2[r]=*(c1+i); // 将str1赋给str2 r++; } str2[r]='\0'; //??? getr(str2); // 调用倒置函数 puts("The new string is "); puts(str2);//输出复制且倒置好的str2 } void getr(char *c2) //实现倒置 { int i=0; char str2[20]; while(*(c2+i)!='\0') { i++; //i达到最大 } for(int j=0;j<i;j++) { str2[i-j-1]=*(c2+j); //实现倒置,将j给i-(j+1) } for(int r=0;r<i;r++) { *(c2+r)=str2[r]; //将字符串2给指针*(c2+r) } }
生成结果:
任务2:
定义一维整形数组,对数组分别进行“由大到小”和"由小到大"排序并输出。
要求:用函数和指针实现排序
拷贝程序:
#include<stdio.h> void r(int *a,int n) ; void p(int *a,int n) ; void main() { int n=5,i,a[30]; //为何已经是5了,还要30 for(i=0;i<n;i++) { scanf("%d",&a[i]); } r(a,n); //何用 for(i=0;i<n;i++) { printf("%d\t",a[i]); //水平输出5个a } printf("\n"); p(a,n); //何用 for(i=0;i<n;i++) { printf("%d\t",a[i]); //有何不同 } } void r(int *a,int n) //n=5,从小到大排序 { int i,j,temp; for(i=1;i<n;i++) { temp=*(a+i); j=i-1; while(j>=0&&temp<*(a+j)) //即*(a+i)<*(a+i-1) { *(a+j+1)=*(a+j); j--; //为何越来越小 } *(a+j+1)=temp; //将初值赋给大的 } } void p(int *a,int n)//从大到小排序 { int i,j,temp; for(i=1;i<n;i++) { temp=*(a+i); j=i-1; while(j>=0&&temp>*(a+j)) { *(a+j+1)=*(a+j); j--; } *(a+j+1)=temp; } }
任务3:
输入字符串s,将字符放入d数组中,最后输出d中的字符串。
要求:用函数和指针实现
运行示例
输入字符串:abc123edf456gh
输出字符串:abcedfgh
程序:
#include<stdio.h> #include<string.h> #define N 20 int main(void){ char a[N]; char *p=a; //将字符串a给指针 gets(a); //表示从键盘上接受一个字符串,放到数组a中 while(*p!='\0') { if((*p>=48&&*p<=57)) // ???? strcpy(p,p+1); else p++; } puts(a); }
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验
- 第十次上机实验任务
- 第十次上机实验草稿
- 第十次上机实验任务
- 第十次上机实验任务
- 第十次上机实验报告
- android面试集锦6
- OCR
- 水题第一记:A+B类型
- 了解iOS中XML解析
- 安卓开发之Intent对象
- 第十次上机实验
- 禁用USB
- 成功人士的22种习惯与风格
- LINUX环境 配置JDK+TOMCAT+ORACLE数据
- android面试集锦7
- Android获取设备信息(利用反射)
- myeclipse 中 flex 代码自动触发提示
- HDU 1568
- JDBC连接oracle10g数据库-韩顺平SQLHelper类