赞
踩
任务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>
- #define N 20
- void getx(char *a,char *y,int n);
- void getr(char *y,char *z);
- int main(void)
- {
- char a[N],y[N],z[N];
- 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>
- #define N 15
- void main()
- {
- int i;
- int a[N];
- printf("请输入十五个整数:");
- for(i=0;i<15;i++)
- scanf("%d",&a[i]);
- int temp=0;
-
- for(i=0;i<15;i++)
- {
- if(a[i]>a[i+1])
- {
- temp=a[i];
- a[i]=a[i+1];
- a[i+1]=temp;
- }
- printf("%d",*(a+i));
- }
- }
该程序是由小到大输出。若由大到小输出,则将a[i]>a[i+1]改为a[i]<a[i+1]。
----------------------分割线----------------------
任务3:
输入字符串s,将字符放入d数组中,最后输出d中的字符串。
要求:用函数和指针实现
运行示例
输入字符串:abc123edf456gh
输出字符串:abcedfgh
- #include<stdio.h>
- #define N 5
- void s(char*p);
- void main()
-
- {
- char a[N];
- puts("输入字符串:");
- gets(a);
- s(a);
- }
- void s(char*p)
- {
- char b[N];
- int i=0;
- while(*p!='\0')
- {
- if(*p>=65&&*p<=90||*p>=97&&*p<=122)
- {
- b[i]=*p;
- i++;
- }
- p++;
- }
- b[i]='\0';
- puts(b);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。