第十次上机实验
2013-06-07 16:54
309 查看
任务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
我的程序:
运行效果截图:
——————————————————————————————————————————————————
任务2:
定义一维整形数组,对数组分别进行“由大到小”和"由小到大"排序并输出。
要求:用函数和指针实现排序
我的程序:
运行效果截图:
——————————————————————————————————————————————————
任务3:
输入字符串s,将字符放入d数组中,最后输出d中的字符串。
要求:用函数和指针实现
运行示例
输入字符串:abc123edf456gh
输出字符串:abcedfgh
我的程序:
运行效果截图:
输入一个字符串和一个正整数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> #define N 20 void getx(char *a,char *y,int n); void getr(char *y,char *z); int main(void) { char a ,y ,z ; printf("Enter a string: \n"); gets(a); int n; printf("Enter an integer: \n"); scanf("%d",&n); getx(a,y,n); getr(y,z); } void getx(char *a,char *y,int n) { char *p=a; while(*p!='\0')p++; p-=n; strcpy(y,p); printf("复制后的新数组 \n"); puts(y); } void getr(char *y,char *z) { char *p=y; int i=0; while(*p!='\0')p++; while(p--!=y){ z[i]=*p; i++; } z[i]='\0'; printf("反转后的新数组 \n"); puts(z); }
运行效果截图:
——————————————————————————————————————————————————
任务2:
定义一维整形数组,对数组分别进行“由大到小”和"由小到大"排序并输出。
要求:用函数和指针实现排序
我的程序:
#include<stdio.h> #include<string.h> int n; void sorttomax(int *arr,int n); void sorttomin(int *arr); int main(void) { printf("请输入数组大小:\n"); scanf("%d",&n); int arr[5]; printf("请输入%d个元素:\n",n); for(int i=0;i<n;i++) scanf("%d",&arr[i]); sorttomax(arr,n); sorttomin(arr); return 0; } void sorttomax(int *arr,int n) { int *p=arr; int temp; for(int i=0;i<n;i++) for(int j=1+i;j<n;j++) if(*(p+i)<*(p+j)) { temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp; } printf("由大到小排序并输出:\n"); for(int i=0;i<n;i++) printf("%d\n",*(p+i)); } void sorttomin(int *arr) { int *p=arr+n; printf("由小到大排序并输出:\n"); while(p--!=arr)printf("%d\n",*p); }
运行效果截图:
——————————————————————————————————————————————————
任务3:
输入字符串s,将字符放入d数组中,最后输出d中的字符串。
要求:用函数和指针实现
运行示例
输入字符串:abc123edf456gh
输出字符串:abcedfgh
我的程序:
#include<stdio.h> #include<string.h> #define N 20 int main(void){ char a ; char *p=a; gets(a); while(*p!='\0') { if((*p>=48&&*p<=57)) strcpy(p,p+1); else p++; } puts(a); }
运行效果截图: