2009-12-01(二)

来源:互联网 发布:ads软件苹果系统 编辑:程序博客网 时间:2024/04/28 17:47

练习一
/*假定输入的字符串只含有字母和*号。请编写函数fun,它的功能是:是字符串前部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。
*/
#include "stdio.h"
#include "stdlib.h"
void fun(char *a,int n)
{
  int i=0,k=0;
  char *p,*t;
  p=t=a;
  while(*t=='*')  /*k记录前部*号数量*/
  {k++;t++;}
  if(k>n)
  {while (*p)
    {
     a[i]=*(p+k-n);
     i++;
     p++;
     }
     a[i]='/0';
  }

}
void main()
{
 char s[81];int n;
 printf("Enter a string :/n");
 gets(s);
 printf("Enter n:");scanf("%d",&n);
 fun(s,n);
 printf("The string after deleted :/n") ;
 puts(s);
 getch();
}
练习二
/*请编写函数fun,该函数的功能是:实现B=A+A',即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出*/
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void fun(int a[3][3],int b[3][3])
{
   int i,j;
   for(i=0;i<3;i++)
   {
     for(j=0;j<3;j++)
     {
       b[i][j]=a[i][j]+a[j][i];
     }
   }
}
void main()
{
 int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];
 int i,j;
 system("CLS");
 fun(a,t);
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  printf("%7d",t[i][j]);
  printf("/n");
 }
 getch();
}
练习三
/*编写程序实现矩阵(3行,3列)的转置。*/
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void fun(int array[3][3])
{
  int i,j;
  int temp;
  for(i=0;i<3;i++)
  {
   for(j=i+1;j<3;j++)         /*关键:将右上角和左下角对换,实现行列互换*/
   {
     temp=array[i][j];
     array[i][j]=array[j][i];
     array[j][i]=temp;

   }
  }
}
void main()
{
 int i,j;
 int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};
 system("CLS");
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  {
   printf("%7d",array[i][j]);
  }
  printf("/n");
 }
 fun(array);
 printf("Converted array: /n");
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  printf("%7d",array[i][j]);
  printf("/n");
 }
 getch();
}

原创粉丝点击