第十次实验任务

来源:互联网 发布:淘宝网老年人冬装 编辑:程序博客网 时间:2024/05/14 03:00

                                                                                              第十次实验任务

任务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>  #define n 20  char* getx(char *c1);  void getr(char *c2);  void main()  {      int i;      puts("enter a string:");      char str1[n];      gets(str1);      getr(getx(str1));  }  char* getx(char *c1)  {      int i=0,j;      while(*(c1+i)!='\0')      {          i++;  }      int m;      puts("enter an integer:");      scanf("%d",&m);      char str2[n];      for(j=0;j<m;j++)      {         str2[j]=*(c1+i-m+j);      }      str2[j]='\0';      return str2;  }  void getr(char *c2)  {      int i=0,j;      while(*(c2+i)!='\0')      {          i++;      }      j=i;      char a[n];      for(i=0;*(c2+i)!='\0';i++)      {          a[i]=*(c2+j-i-1);      }      a[i]='\0';      puts("the new string is: ");     puts(a);  }  


 

 

 

任务2:
定义一维整形数组,对数组分别进行“由大到小”和"由小到大"排序并输出。
要求:用函数和指针实现排序

 

 

#include<stdio.h>  #define N 20  void congdadaoxiao(int *c,int num);  void congxiaodaoda(int *c,int num);  void main()  {      int arraylist[N],n;      printf("你要输入几个数?");     scanf("%d",&n);      for(int i=0;i<n;i++)      {          printf("请输入第%d个数",i+1);          scanf("%d",&arraylist[i]);      }      congdadaoxiao(arraylist,n);     printf("该组数从大到小为\n");      for(int i=0;i<n;i++)      {          printf("  %d\n",arraylist[i]);      }      congxiaodaoda(arraylist,n);      printf("该组数从小到大为\n");      for(int i=0;i<n;i++)      {          printf("  %d",arraylist[i]);      }  }  void congdadaoxiao(int *c,int num)  {      int temp1,i,j;      for(i=0;i<num;i++)      {          for(j=0;j<num-1;j++)          {              if(*(c+j)>*(c+j+1))              {                  temp1=*(c+j);                  *(c+j)=*(c+j+1);                  *(c+j+1)=temp1;             }          }      }    }  void congxiaodaoda(int *c,int num)  {      int temp1,i,j;      for(i=0;i<num;i++)      {          for(j=0;j<num-1;j++)          {              if(*(c+j)<*(c+j+1))              {                  temp1=*(c+j);                  *(c+j)=*(c+j+1);                  *(c+j+1)=temp1;              }          }      }  }  


 

任务3:
输入字符串s,将字符放入d数组中,最后输出d中的字符串。
要求:用函数和指针实现
运行示例
输入字符串:abc123edf456gh
输出字符串:abcedfgh

#include<stdio.h>  #include<string.h>  #define N 20  void main()  {      int n,j=0;      char str[N],b[N];      gets(str);      n=strlen(str);      for(int i=0;i<n;i++)      {          if(str[i]!='\0'&&str[i]<='z'&&str[i]>='A')          {                 *(b+j)=*(str+i);              j++;          }          else              continue;      }      *(b+j)='\0';      puts(b);  }