第13堂课后作业

来源:互联网 发布:小仙女的网络意思 编辑:程序博客网 时间:2024/05/01 16:50

                                                                                             第13堂课后作业                

作业1:
输入一个字符串和一个正整数m,将该字符串中的前m个字符复制到另一个字符串中,再输出后一个字符串。
运行示例
Enter a string: abcdefghijk
Enter an integer: 6
The new string is abcdef

#include <stdio.h>  #define N 20  void main()  {      int m;      puts("enter a string:");      char str1[N];      gets(str1);      puts("enter an integer:");      scanf("%d",&m);      char str2[N];     for(int i=0;i<m;i++)      {          str2[i]=str1[i];      }      str2[m]='\0';     puts("the new string is ");      puts(str2);  }  


 


----------------------分割线----------------------

 

 

作业2:
编一个函数void fun( char *ss),从键盘输入一个字符串存入数组a中,利用函数再将a的内容前后倒置后重新存入数组a中并输出(要求用指针访问数组元素)
运行示例
输入: abc 123
输出:321 cba

 

 

#include<stdio.h>  #include<string.h>  #define N 20  void fun( char *ss);  void main()  {      int i=0;      char a[N];      gets(a);      fun(a);      puts(a);  }  void fun( char *ss)  {      int i=0;      char temp=NULL;      while(*(ss+i)!='\0')//取原数组长度      {          i++;      }      for(int j=1;j<=i/2;j++)      {          temp=*(ss+j-1);          *(ss+j-1)=*(ss+i-j);          *(ss+i-j)=temp;      }  }  


 

 

 

 

----------------------分割线----------------------
作业3:
编一个程序,输入4组整形数,每组3个数,分别求出每组最大的数字,并输出
要求:用函数int max(int *x,int *y,int *z)求出三个数中的最大数
运行示例
.

#include<stdio.h>  #define row 4  #define column 3  int max(int *x,int *y,int *z);  void main()  {      int arraylist[row][column];      printf("输入%d行整型数,每行%d个数\n",row,column);      for(int i=0;i<row;i++)      {          printf("请输入第%d行的%d个数:",i+1,column);          scanf("%d %d %d",&arraylist[i][0],&arraylist[i][1],&arraylist[i][2]);      }      for(int i=0;i<row;i++)      {      printf("第%d行数中最大数是:%d\n",i+1,max(arraylist[i],arraylist[i]+1,arraylist[i]+2));      }  }  int max(int *x,int *y,int *z)  {      if(*x>*y&&*x>*y)          return *x;      else if(*y>*x&&*y>*z)         return *y;      else if(*z>*x&&*z>*y)          return *z;  }


 

 

----------------------分割线----------------------
作业4:
输入字符串s,将数字字符放入d数组中,最后输出d中的字符串。
运行示例
输入字符串:abc123edf456gh
输出数字 :123456

#include <stdio.h>  #define N 20  void main()  {      int i=0,j=0;      char str[N],num[N],*p;      gets(str);      while(str[i]!='\0')      {          i++;      }      for(p=str;p<str+i;p++)      {          if(*p>47&&*p<58)          {              num[j]=*p;              j++;          }      }      num[j]='\0';      puts(num);  }