组合-循环与判断

问:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

新建筛选器combination,下面新建项loopBranch.c
将loop.c最后一个main方法的名改为main33

1.准备基础框架

void
int main(void) {}
int main(void) {
	return 0;
}
int main(void) {
	printf();
	return 0;
}
#include <stdio.h>

int main(void) {
	printf();
	return 0;
}
#include <stdio.h>

int main(void) {
	printf("");
	return 0;
}

2.准备for

#include <stdio.h>

int main(void) {
	for (int i = 1; i < 5; i++)
	{
		for (int j = 1; j < 5; j++) 
		{
			for (int k = 1; k < 5; k++)
			{

			}
		}
	}

	printf("");
	return 0;
}

3.为每个for加上if

#include <stdio.h>

int main(void) {
	for (int i = 1; i < 5; i++)
	{
		for (int j = 1; j < 5; j++) 
		{
			if (i == j)
			{
				continue;
			}
			else {
				for (int k = 1; k < 5; k++)
				{
					if (i == k)
					{
						continue;
					}
					else if (j == k) {
						continue;
					}
				}
			}
		}
	}

	printf("");
	return 0;
}

4.输出每个三位数

#include <stdio.h>

int main(void) {
	for (int i = 1; i < 5; i++)
	{
		for (int j = 1; j < 5; j++) 
		{
			if (i == j)
			{
				continue;
			}
			else {
				for (int k = 1; k < 5; k++)
				{
					if (i == k)
					{
						continue;
					}
					else if (j == k) {
						continue;
					}
					else
					{
						printf("%d%d%d\n",i,j,k);
					}
				}
			}
		}
	}

	printf("");
	return 0;
}

5.统计个数

#include <stdio.h>

int main(void) {
	int count = 0;
	for (int i = 1; i < 5; i++)
	{
		for (int j = 1; j < 5; j++) 
		{
			if (i == j)
			{
				continue;
			}
			else {
				for (int k = 1; k < 5; k++)
				{
					if (i == k)
					{
						continue;
					}
					else if (j == k) {
						continue;
					}
					else
					{
						printf("%d%d%d\n",i,j,k);
						count++;
					}
				}
			}
		}
	}

	printf("%d",count);
	return 0;
}

PixPin_2025-07-11_09-18-50

posted @ 2025-07-31 20:37  基础狗  阅读(7)  评论(0)    收藏  举报