第十次上机实验任务

来源:互联网 发布:淘宝内部优惠券赚钱 编辑:程序博客网 时间:2024/05/16 22:09

任务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
----------------------分割线----------------------

我的程序:

  1. #include<stdio.h>     
  2. #include<string.h>     
  3. #define N 10      
  4. void A(char *c1);    
  5. void B(char *c2);    
  6. void main()    
  7. {  
  8.     char a[N];    
  9.     printf("Enter a string:");    
  10.     gets(a);    
  11.     A(a);    
  12. }    
  13. void A(char *c1)    
  14. {        int i  
  15.     int n,m=0;  
  16.     int j=0;  
  17.     char t[N];    
  18.     printf("Enter an integer:");    
  19.     scanf("%d",&n);    
  20.     while(*(c1+j)!='\0')      
  21.     {  
  22.         j++;  
  23.     }     
  24.     for( i=j-n;i<j;i++)      
  25.     {  
  26.         t[m]=*(c1+i);    
  27.         m++;  
  28.     }     
  29.     t[m]='\0';    
  30.     B(t);    
  31.     printf("The new string is ");    
  32.     puts(t);  
  33. }    
  34. void B(char *c2)     
  35. {        intj,k  
  36.     int i=0;      
  37.     char t[N];      
  38.     while(*(c2+i)!='\0')      
  39.     {  
  40.         i++;  
  41.     }      
  42.     for( j=0;j<i;j++)      
  43.     {  
  44.         t[i-j-1]=*(c2+j);  
  45.     }      
  46.     for( k=0;k<i;k++)      
  47.     {  
  48.         *(c2+k)=t[k];  
  49.     }      
  50. }    
我的截图:

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

我的程序:

#include<stdio.h>   #include<string.h>   #define N 100   void paix1(int *p,int n)    {        int t;        for(int i=0;i<n;i++)      {          for(int j=0;j<n-i-1;j++)            {                if(*(p+j)<*(p+j+1))                {                    t=*(p+j);                    *(p+j)=*(p+j+1);                    *(p+j+1)=t;                }            }        }  }    void paix2(int *p,int n)    {        int t;            for(int i=0;i<n;i++)            for(int j=0;j<n-i-1;j++)            {                if(*(p+j)>*(p+j+1))                {                    t=*(p+j);                    *(p+j)=*(p+j+1);                    *(p+j+1)=t;                }            }    }    void main()  {      int a[N],*p;      int n,i;      printf("请输入数组的元素:");      scanf("%d",&n);      for(i=0;i<n;i++)      {          scanf("%d",&a[i]);      }      p=a;      paix1(a,n);      printf("由大到小为:");      for(i=0;i<n;i++)      {          printf("%d ",a[i]);      }      printf("\n");      paix2(a,n);      printf("有小到小为:");          for(i=0;i<n;i++)      {          printf("%d ",a[i]);      }      printf("\n");      getchar();  }  


我的截图:

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

我的程序:

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


我的截图:


原创粉丝点击