实验十

//输入一个字符串和一个正整数x,将该字符串中的后x个字符复制到另一个字符串y中,输出字符串y;再对y串的内容前后倒置后存入数组z中并输出。
//     要求:用指针访问数组元素、用函数getx(char *c1)实现复制、用函数getr(char *c2)实现倒置。
#include<stdio.h>
#include<string.h>
void getx(char *c1);
void getr(char *c2);
int x;
int main()
{
	
	char s1[80];
	printf("输入字符串x:");
	gets(s1);//输入字符串
	printf("输入x:");
	scanf("%d",&x);
	
	getx(s1);
	getr(s1);
	
	return 0;
}
void getx(char *c1)
{
	char s2[80];
	int i,m;
	m=strlen(c1);
	for(i=0;i<x;i++)
		s2[i]=*(c1+m-x+i);
	s2[x]='\0';
	printf("输出字符串%s\n",s2);
}
void getr(char *c2)
{
	char s3[80];
	int i=0,n=0;
	n=strlen(c2);
	for(i=0;i<x;i++)
		s3[i]=*(c2+n-1-i);
	s3[n]='\0';
	
	printf("输出%s\n",s3);
}

  


//为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。变换规则是:小写字母z变换成为a,其它字符变换成为该字符ASCII码顺序后1位的字符,比如o变换为p。 // 要求输入一个字符串(少于80个字符),输出相应的密文;要求定义和调用函数encrypt(s),该函数将字符串s变换为密文。 #include<stdio.h> #include<string.h> void encrypt(char *); int main() { char s[80]; printf("输入字符串:"); gets(s);//输入字符串 encrypt(s);//调用自定义函数 printf("%s\n",s); return 0; } void encrypt(char *p) { for(;*p!='\0';p++){ if(*p=='z') *p='a'; else *p=*p+1; } }

  

//有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数3的人退出圈子。如此循环,直到留下最后一个人。
 
 //    要求:
 //n大于30;
// 输出每次退出人的编号
 //输出最后留下人的编号
#include<stdio.h>
int main(void)
{
	int i,n,m;
	int k=0;
	printf("enter n:");
	scanf("%d",&n);
	int s[80];
	int *p;
	p=s;
	for(i=0;i<n;i++)
		*(p+i)=i+1;
	i=0;
	m=n;
	while(m>1){
		if(*(p+i)!=0)
			k++;
		if(k==3){
			printf("退出的是%d\n",i);
			m--;
			k=0;
			*(p+i)=0;
		}
		i++;
		if(i==n)
			i=0;
	}
	for(i=0;i<n;i++){
		if(*(p+i)!=0)
			printf("最后的是%d\n",i);
	}
	return 0;
}

  

//请编一个程序,可以将英语规则名词由单数变成复数。已知规则如下:
//     (a)以辅音字母y结尾,则将y改成i,再加es;
//
 //    (b)以s、x、ch、sh结尾,则加es;
 //    (c)以元音字母o结尾,则加es;
 //    (d)其他情况直接加s。
 //    要求用键盘输入英语规则名词,屏幕输出该名词的复数形式。
#include<stdio.h>
#include<string.h>
int main()
{
	int x;
	char s[80],ch;
	
	printf("enter a word:");
	gets(s);
	x=strlen(s);
	ch=s[x-1];
	switch(ch){
	case 'y':
		s[x-1]='i';
		s[x]='e';
		s[x+1]='s';
		s[x+2]='\0';
	case ('s'||'x'||'sh'||'ch'):
		s[x]='e';
		s[x+1]='s';
		s[x+2]='\0';
	case 'o':
		s[x]='e';
		s[x+1]='s';
		s[x+2]='\0';
	default:
		s[x]='s';
		s[x+1]='\0';
	}
	printf("%s\n",s);
	return 0;
}


	

  

posted @ 2013-11-17 20:10  刘丽娜123456  阅读(178)  评论(0编辑  收藏  举报