9.7.c2级刷题笔记

此代码算的2/1圆周率,里面既有累乘也有累加  s1=s1*n/(2*n+1); 这个右边是累乘n-1的s1再乘*n/(2*n+1)就是n累乘的s1,再把每个s1累加就是圆周率

	while(s1>=eps) {
		s+=s1;
		 s1=s1*n/(2*n+1);  
		n++;
	}

 //此题为找出字符串中最后一个与t1字符串字符串相等的子字符串,并将其赋值为t2字符串,首先传地址给 fun函数
//分别为s要查找的字符串字符串,t1,t2字符串还有w为修改后的字符 ,首先把s字符拷贝给w字符,用while循环遍历w字符
// 再让指针p指向w遍历到的单个字符,r指向t1字符 ,如果r指向的字符与p指向的字符相等,两个指针都往后移,如果不相等则
//推出循环,w指针指向下一个字符,r指针重新指向t1开头再次比较,因为两个子字符串长度相等所以当其中一个指针r指向'/0'
//时两个t1这个字符串就和s的子字符串匹配上了,然后指针a指向这时的w,也就是遍历前的p这样一此类推最后a会指向最后一个
//t1字符串可以匹配的子字符串的第一个字符,然后通过循环赋值将t2赋值给a,w字符串就修改完成 

#include <stdio.h>
#include <string.h>
//此题为找出字符串中最后一个与t1字符串字符串相等的子字符串,并将其赋值为t2字符串,首先传地址给 fun函数
//分别为s要查找的字符串字符串,t1,t2字符串还有w为修改后的字符 ,首先把s字符拷贝给w字符,用while循环遍历w字符
// 再让指针p指向w遍历到的单个字符,r指向t1字符 ,如果r指向的字符与p指向的字符相等,两个指针都往后移,如果不相等则
//推出循环,w指针指向下一个字符,r指针重新指向t1开头再次比较,因为两个子字符串长度相等所以当其中一个指针r指向'/0'
//时两个t1这个字符串就和s的子字符串匹配上了,然后指针a指向这时的w,也就是遍历前的p这样一此类推最后a会指向最后一个
//t1字符串可以匹配的子字符串的第一个字符,然后通过循环赋值将t2赋值给a,w字符串就修改完成 
void fun (char  *s,  char *t1, char *t2 , char *w)
{
  char   *p , *r, *a;
  strcpy( w, s );
/************found************/
  while ( *w )
  {   p = w;   r = t1;
      while ( *r )
/************found************/
        if ( *r == *p )
        { r++;  p++; }
        else  break;
        if ( *r == '\0' ) a = w;
        w++;
  }
  r = t2;
  while ( *r ){ *a = *r; a++; r++; }
}

void main()
{
  char   s[100], t1[100], t2[100], w[100];

  printf("\nPlease enter string S:"); scanf("%s", s);
  printf("\nPlease enter substring t1:"); scanf("%s", t1);
  printf("\nPlease enter substring t2:"); scanf("%s", t2);
  if ( strlen(t1)==strlen(t2) )
  {   fun( s, t1, t2, w);
      printf("\nThe result is :  %s\n", w);
  }
  else  printf("\nError : strlen(t1) != strlen(t2)\n");
}

 
//典型的对文件操作代码,首先定义结构体类型STU,然后定义数组插入数据,定义文件指针fp,并用wb及二进制写入的方式打开文件student.dat,将结构体数组写入,再将原始数字打印出来,然后, 
//将文件传入函数用二进制读出的方式将数据读到指针s,按照s[i].sno对数组排序然后再写入文件夹 

#include  <stdio.h>
#define    N    5
typedef struct student {
  long  sno;
  char  name[10];
  float  score[3];
} STU;
void fun(char  *filename)
{ FILE  *fp;      int  i, j;
  STU  s[N], t;
/**********found**********/
  fp = fopen(filename, "rb");
  fread(s, sizeof(STU), N, fp);
  fclose(fp);
  for (i=0; i<N-1; i++)
    for (j=i+1; j<N; j++)
/**********found**********/
      if (s[i].sno > s[j].sno)
      {  t = s[i];  s[i] = s[j];  s[j] = t;  }
  fp = fopen(filename, "wb");
/**********found**********/
  fwrite(s, sizeof(STU), N, fp); 
  fclose(fp);
}
void main()
{ STU  t[N]={ {10005,"ZhangSan", 95, 80, 88}, {10003,"LiSi", 85, 70, 78},
             {10002,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87},
             {10001,"MaChao", 91, 92, 77}}, ss[N];
  int  i,j;      FILE  *fp;
  fp = fopen("student.dat", "wb");
  fwrite(t, sizeof(STU), 5, fp);
  fclose(fp);
  printf("\n\nThe original data :\n\n");
  for (j=0; j<N; j++)
  {  printf("\nNo: %ld  Name: %-8s      Scores:  ",t[j].sno, t[j].name);
     for (i=0; i<3; i++)  printf("%6.2f ", t[j].score[i]);
     printf("\n");
  }
  fun("student.dat");
  printf("\n\nThe data after sorting :\n\n");
  fp = fopen("student.dat", "rb");
  fread(ss, sizeof(STU), 5, fp);
  fclose(fp);
  for (j=0; j<N; j++)
  {  printf("\nNo: %ld  Name: %-8s      Scores:  ",ss[j].sno, ss[j].name);
    for (i=0; i<3; i++)  printf("%6.2f ", ss[j].score[i]);
    printf("\n");
  }
}

 这差不多是对数组操作的进阶,将数组的前m个元素移到数组后面,首先for循环确定要往前移几次每次在移动之前记录第一个字符,因为每次往前移第一个字符都会被覆盖,所以,往前移动m个就相当于记录了m个字符,然后就是对字符w的前移操作, for(j=1;w[j]!='\0';j++){w[j-1=w[j]},从第二个字符覆盖第一个字符开始往前移一位,然后  w[j-1]=t,将第一个字符放到最后一个字符当中,依次类推,每次往前移之前记录第一个字符,移动后在把字符放到最后,移动了m位,就放了m个,从而完成了操作

#include <stdio.h>
#include <string.h>
#define   N    80
void fun (char  *w,int  m)
{
	int i,j;
	char t;
	for(i=1;i<=m;i++) /*进行m次的循环左移*/
	{ t=w[0];
	  for(j=1;w[j]!='\0';j++) /*从第2个字符开始以后的每个字符都依次前移一个字符*/
		  w[j-1]=w[j];
	  w[j-1]=t; /*将第1个字符放到最后一个字符中*/
	}
}

void main()
{  char  a[N]= "ABCDEFGHIJK";
   int  m;void NONO ();
   printf("The original string:\n");puts(a);
   printf("\n\nEnter  m:  ");scanf("%d",&m);
   fun(a,m);
   printf("\nThe string after moving:\n");puts(a);
   printf("\n\n");
   NONO();
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 9.7.0.1190202 runtime是指一个软件运行时所使用的版本号。运行时是指软件在运行过程中所需要的各种资源、库文件等。不同版本的运行时具有不同的功能和特性,由于各种软件需要不同的功能和特性,所以它们往往需要不同版本的运行时来支持。9.7.0.1190202 runtime可能是某个软件所需要的运行时版本号,也可能是一个操作系统所支持的运行时版本号。为了避免软件运行时出现不兼容的问题,我们需要安装与软件所需要的运行时相匹配的运行时版本。当然,一些软件也可以打包自己所需要的运行时版本,以便在不同环境下运行。总之,9.7.0.1190202 runtime是软件运行时版本号的一种表示,能够帮助我们更好地理解和解决软件运行时相关的问题。 ### 回答2: 9.7.0.1190202 runtime 是指特定的运行时环境版本号。在软件开发中,运行时环境(或称运行库)是指一组动态链接库,里面包含了许多通用功能的代码,程序在运行时就可以调用这些功能。9.7.0.1190202 runtime 是针对特定的软件版本而言的,它包含了与这个版本相关的运行库文件和函数库。这个特定的版本号可以用来标明软件的版本和相关的基础设施。在软件的更新过程中,经常需要更新运行时环境,以确保软件的正常运行和安全性。因此,要求经常根据特定的软件版本号来确定所需的运行时环境版本号。在软件安装和配置中,正确地安装所需的运行时环境版本非常重要,它可以确保软件的正常运行和最佳性能。 ### 回答3: 9.7.0.1190202 runtime是指某个软件或系统中所使用的运行时环境版本号,其中9.7.0代表主版本号,1190202为子版本号。这个运行时环境通常是指在电脑上为某些软件或程序提供支持的基础框架,为软件程序提供必要的运行时库和文件等资源,以保证软件能够正常运行。不同的软件和系统可能会使用不同版本的运行时环境,而不同版本之间可能存在着一些差异,所以在安装某个软件时,需要确保使用正确的运行时环境版本,否则可能会导致程序无法正常运行或者产生其他问题。同时,由于运行时环境会随着时间的推移而进行不断的升和更新,所以需要不断关注其版本的变化,以便及时更新和升系统。总之,9.7.0.1190202 runtime是软件或系统中所使用的特定版本的运行时环境,是保证软件正常运行的重要基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值