复习

#无聊时可以学习书上的例题,亲自动手实现。

##业精于勤荒于嬉!

1、在屏幕上输出以下图案:菱形的打印
*
***
*****
*******
*********
***********
*************
***********
*********
*******
*****
***
*

//C语言
//输出菱形

#include
#include
#include
void Diamond(int line) {
	if (line % 2 == 0) {
		printf("菱形的行数为奇数,请输入奇数!\n");
	}
	else
	{
		int hang = line / 2 + 1;
		int col = line / 2;
		for (int i = 1; i <= hang; i++) {
			for (int j = 1; j <= col - i + 1; j++) {
				printf(" ");
			}
			for (int k = 1; k <= 2 * i - 1; k++) {
				printf("*");
			}
			printf("\n");
			Sleep(500);
		}
		for (int i = 1; i < hang; i++) {
			for (int j = 0; j < i; j++) {
				printf(" ");
			}
			for (int k = 0; k < line - (2 * i - 1) - 1; k++) {
				printf("*");
			}
			printf("\n");
			Sleep(500);
		}
	}
		system("pause");
	
}
void main() {
	int line;
	printf("请输入行数:");
	scanf_s("%d",&line);
	Diamond(line);
}

3、求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222

//C语言
//求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222 

//不能用于位数多
#include
#include
#include
/*void main() {
	int num;
	printf("请输入0~9中的数字:");
	scanf_s("%d",&num);
	int a = 11111 * num;
	int b = 1111 * num;
	int c = 111 * num;
	int d = 11 * num;
	printf("%d+%d+%d+%d+%d=%d\n",a,b,c,d,num,a+b+c+d+num);
	system("pause");
}*/
void main() {
int num=2;
int a=2;
int b = 0;
int c = 0;
int i = 0;
while(i<5){
	b = b + a;
	c= c + b;
	a = a * 10;
	++i;
}
printf("%d",c);
system("pause");
}
//又一钟方法。(摘)
/*void main()
{
int sum,a,n,i; 
printf("a\n");
scanf("%d,%d",&n,&a);
for(sum=0,i=0;i

4、编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。

/编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。 
#include 
#include
void main()
{
int ch;
int count = 0;

while((ch = getchar()) != EOF)
{
if(ch == '{')
{
count ++;
}
                      
if(ch == '}' && count == 0)
{
    printf("不匹配\n");
}                      
                         
if(ch == '}' && count !=0)
{
    count --;

}
                          
}

if(count == 0)
{
printf("匹配!\n");
}
else
{
printf("不匹配!\n");
}

system("pause");
}

5、5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次

//C语言
#define  _CRT_SECURE_NO_WARNINGS
#include
#include

//5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
//A选手说:B第二,我第三;
//B选手说:我第二,E第四;
//C选手说:我第一,D第二;
//D选手说:C最后,我第三;
//E选手说:我第四,A第一;
//比赛结束后,每位选手都说对了一半,请编程确定比赛的名次
void player_rank(int p1,int p2,int p3,int p4,int p5) {
	for (p1 = 1; p1 <= 5;p1++) {
		for (p2 = 1; p2 <= 5; p2++) {
			for (p3 = 1; p3 <= 5; p3++) {
				for (p4 = 1; p4 <= 5; p4++) {
					for (p5 = 1; p5 <= 5; p5++) {
						if ((p1!=p2)&&(p1!=p3)&&(p1!=p4)&&(p1!=p5)&&(p2!=p3)&&(p2!=p4)&&(p2!=p5)&&(p3!=p4)&&(p3!=p5)&&(p4!=p5)) {
						//if(p1*p2*p3*p4*p5==120){
						     if (((p2 == 2) + (p1 == 3) == 1) &&
								((p2 == 2) + (p5 == 4) == 1) &&
								((p3 == 1) + (p4 == 2) == 1) &&
								((p3 == 5) + (p4 == 3) == 1) &&
								((p5 == 4) + (p1 == 1) == 1) == 1) {
								printf("A=%d B=%d C=%d D=%d E=%d \n", p1, p2, p3, p4, p5);
							}
						}
					}
				}
			}
		}
	}
}
void main(){
	int a = 0;
	int b = 0;
	int c = 0;
	int d = 0;
	int e = 0;
	player_rank(a,b,c,d,e);
	system("pause");
}

6、
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个
嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。

//C语言
#define  _CRT_SECURE_NO_WARNINGS
#include
#include
//日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个
//嫌疑犯的一个。以下为4个嫌疑犯的供词。
//A说:不是我。
//B说:是C。
//C说:是D。
//D说:C在胡说
//已知3个人说了真话,1个人说的是假话。
//现在请根据这些信息,写一个程序来确定到底谁是凶手。

//如果A假,则A是凶手。B和D矛盾
//如果B假,不是C凶手,C和D矛盾
//如果C假,成立
//如果D假,则B和C矛盾

int find_x(char man[]) {
	
	for (int temp = 0; temp < sizeof(man) / sizeof(man[0]);temp++) {
		if (((man[temp]!='A')+(man[temp]=='C')+(man[temp]=='D')+(man[temp]!='D'))==3) {
			printf("凶手是%c\n",man[temp]);
		}
	}
	return 0;
}
void main() {
	char xiongshou[4] = {'A','B','C','D'};
	find_x(xiongshou);
	system("pause");
}

7、在屏幕上打印杨辉三角。
1
1 1
1 2 1
1 3 3 1

#define  _CRT_SECURE_NO_WARNINGS
#include
#include
#define ROW 6
#define COL 6
void main() {
	int YHsanjiao[ROW][COL] = {1};
	for (int row = 0; row < ROW; row++) {
		YHsanjiao[row][0] =YHsanjiao[row][row]= 1;
	}
	for (int row = 2; row < ROW;row++) {
	
		for (int col = 1; col <= row;col++) {
			YHsanjiao[row][col] = YHsanjiao[row - 1][col - 1] + YHsanjiao[row - 1][col];
		}
	}
	
	for (int row = 0; row < ROW;row++) {
		for (int temp = 0; temp <= 2*(ROW -row); temp++) {
			printf(" ");
		}
		for (int col = 0; col <= row;col++) {
			printf("%4d",YHsanjiao[row][col]);
		}
		printf("\n");
	}
	system("pause");
}

你可能感兴趣的:(C语言入门学习系列)