首页 > 代码库 > 第十一次作业

第十一次作业

一、实验内容      

      1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)

#include<stdio.h>
#define N 100
int main()
{
	char shuzu[N];
	int a,b,c,d,i,e;
	a=0;
	b=0;
	c=0;
	d=0;
	e=0;
	printf("请输入字符串\n");
	gets(shuzu);
	for(i=0;shuzu[i]!=‘\0‘;i++)
	   {
		 if (‘A‘<=shuzu[i]&&shuzu[i]<=‘Z‘)
	       a++;
	    else if(‘a‘<=shuzu[i]&&shuzu[i]<=‘z‘)
	       e++;
	    else if(shuzu[i]==‘ ‘)
	       b++;
	    else if(‘0‘<=shuzu[i]&&shuzu[i]<=‘9‘)
	       c++;
	    else 
	       d++;
	   }
	    printf("大写字母:%d\n",a);
	    printf("小写字母:%d\n",e);
	    printf("空格:%d\n",b);
	    printf("数字:%d\n",c);
	    printf("其他字符:%d\n",d);
	    return 0;
} 

  技术分享

 

  2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。

#include<stdio.h>
#include<string.h>
#define N 100
int main()
{
	char password[N],password0[N];
	int i;
	printf("请设置一个密码,:\n");
	gets(password);
	printf("请输入密码:\n");
	gets(password0);
	if (strcmp(password,password0)==0)
	{
		printf("登陆成功\n");
	}
	else 
	{
			for(i=0;i<3;i++)
		{
		     printf("登录失败,请重新输入\n");
		     gets(password0);
		     if (strcmp(password,password0)==0)
			{
				printf("登陆成功\n");
			}
		}
	}
}

  技术分享技术分享

 

 

  3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。

#include<stdio.h>
#include<string.h>
#define N 100
int huiwen(char palindrome[N]);
int main()
{
	char palindrome[N];
	int i;
	printf("请输入一个字符串\n");
	gets(palindrome);
	i=huiwen(palindrome);
	if (i==1)
	{
		printf("字符串回文\n");
	}
	else if(i==0)
	{
		printf("字符串不回文\n");
	}
}
int huiwen(char palindrome[N])
{
	int i,b;
	for(i=0;palindrome[i]!=‘\0‘;i++)
	{
		b++;
	}
	for(i=0;palindrome[i]!=‘\0‘;i++)
	{
		if(palindrome[i]==palindrome[b-i-1])
		{
			return 1;
		}
		else
		return 0;
	}
}

  技术分享技术分享

二、实验总结

1、字符串不能用关系运算符>、<、==直接比较大小,如 strcmp(password,password0)==0是判断两个password,password0是否相等。

2、scanf函数和gets函数的区别 (1)对空格的处理机制不同 scanf函数不能输入带空格的字符串 gets函数可以输入带空格的字符串 (2)对回车换行符的处理机制不同

3、int c;  while((c = getchar()) != ‘\n‘ && c != EOF); 清除缓存。

三、课程体会(请回答以下问题)

    1. 经过一个学期的学习,你统计过一共写了多少行代码吗?与开学初相比,你对C语言或者程序设计有了哪些认识和理解?

         大约1500行左右  ,C语言需要我们多练习,多总结

    2. 在C语言的学习过程中,你有什么经验和教训分享给大家?

     多加练习,自己学的不怎么好,还是需要多练习,搞清逻辑关系。

    3. 对于采用技术博客提交作业这种形式,你有什么看法,对你有帮助的地方在哪里?你觉得还可以做哪些改进?,如果下一届的学弟学妹们入学了,你会给他们推荐这种教学形式吗?。

   采用博客园,能使自己每周都有个任务在心里,能起到督促的作用,多练一遍,也能看到其他同学的作业,相互之间互相交流一下,更加促进学习。会像他们推荐这种教学形式,可以锻炼自己更多的能力

 

第十一次作业