整理一下之前写的程序

整理一下之前写的程序

1.关于switch的用法

在这里插入图片描述
:每种情况结束一定要写break,不然下面的情况也会被执行。

#include<stdio.h>
int main()
{	int a;
	scanf("%d",&a);
	switch(a)
	{	case 0:printf("%d\n",a+1);
		case 1:printf("%d\n",a+1);break;
		default:printf("%d",a);
		case 2:
		case 3:
		case 4:printf("%d\n",a+1);
	}
	return 0;
} 

以下代码可以运行,当n=‘1’时,运行case’1’,当n=0时运行case 48.这说明,在n为字符时,case后可跟字符,也可跟其ascii码。

#include<stdio.h>
int main()
{
	char n;
	scanf("%d",&n);
	switch(n) {
		case'1':printf("Yes");break;
		case 48:printf("No");
	}
	return 0;
	
} 

2.研究循环输入的方法

(1)

#include<stdio.h>
int main()
{
	int n;
	while(scanf("%d",&n))//原以为这种方式能实现:当输入数据时判断 n是否为真,如果为真则终止循环,否则继续输入 
	{	printf("%d\n",n);//当输入2 3 4 -1时,输出只是2 
		if(n)			//可以理解为,这种只能输入并判断一个数; 
		{
			printf("%d",n);break;
		}
		else printf("请输入正整数:"); 
	}

(2)

while(1)
	{	scanf("%d",&n);
		//printf("%d\n",n);
		if(n)break;/*真实情况是输入除0外的数,程序就结束,只需改成if(n>0)就好了*/
		else printf("请输入正整数:\n"); 
	}

用while(1){…}中间设置跳出循环的条件是可以达到目的的。这里要提一点,上面代码的if(n)用在此处不恰当。下面附上if(n)的正确含义
if(n):

如果n为boolean类型,则判断n是否为true,如果是true执行if后语句,否则执行else后语句;

如果n为整型,则判断n是否为0,如果是0执行else后语句,否则执行if后语句;

如果n为字符类型,则判断字符n对应的ASCII码值是否为0,若果是执行else后语句,否则执行if后语句
(3)设置循环变量

	scanf("%d",&n);int t=0;
	while(n>=1)
	{	t+=n;
		n--;
	} 
	printf("%d",t);

(4)密码文,用数组与不用

	int i,n;
	for(i=0;i<100;i++){
		if(a[i]!='0'){
			if(a[i]!='x'&&a[i]!='y'&&a[i]!='z'&&a[i]!='X'&&a[i]!='Y'&&a[i]!='Z'){
				a[i]+=3;
			}
			else a[i]-=23;
		}
		else{
			n=i;break;
		}
	}
	int j;
	//printf("%c\n",a[n]);
	for(j=0;j<n;j++){
		printf("%c",a[j]);
	}
	char a;
	while(1){
		scanf("%c",&a);
		if(a=='\n')break;
		else {
			if(a!='x'&&a!='y'&&a!='z'&&a!='X'&&a!='Y'&&a!='Z'){
			a+=3;
			}
			else a-=23;
			printf("%c",a);
		}

(5)花了大力气搞出来的实心菱形

	int n;
	scanf("%d",&n);
	int i,j,k;
	for(i=1;i<=n;i++){
		j=n-i;
		while(j){
			printf(" ");j--;
		}
		k=2*i-1;
		while(k){
			printf("*");k--;
			if(k==0)printf("\n");
		}
	}
	//printf("%d\n",i);
	for(i=n-1;i>=1;i--){
		j=n-i;
		while(j){
			printf(" ");j--;
		}
		k=2*i-1;
		while(k){
			printf("*");k--;
			if(k==0)printf("\n");
		}
	}

计算好输出的空格与菱形数

发布了26 篇原创文章 · 获赞 18 · 访问量 1658

猜你喜欢

转载自blog.csdn.net/qq_40774136/article/details/102545653