Skip to content

九九乘法表

c
#include <stdio.h>
int main()
{
	int x,y;
	for (x=1;x<=9;x++)
	{
		for (y=1;y<=x;y++)
			printf("%d*%d=%d\t",x,y,x*y);//  /t 占位符
		printf("\n");
	}
	return 0;
}

C语言数组

c
//数组(Array),它是一组具有相同类型的数据的集合。
#include <stdio.h>
int main()
{
	int a[10];
	printf("请输入10个数\n");
	for (int i = 0; i < 10; ++i)
	{
		scanf("%d",&a[i]);
	}
	for(int i = 0 ;i < 10; ++i)
	{
		printf("%d\n",a[i]);
	}
}

百钱白鸡

c
#include <stdio.h>
int main()
{
	int cock,hen,chicken;
	for (cock=0;cock<=20;cock++)
	{
		for (hen=0; hen<=33; hen++)
		{
			chicken = 100-cock-hen;
			if (cock*5+hen*3+chicken/3.0==100 && cock+hen+chicken==100)
				printf("cock=%2d,hen=%2d,chicken=%2d\n",cock,hen,chicken);
		}
	}
}

求n个数的平均数

c
#include <stdio.h>
int num;

double avg(int n)
{
	int sum=0;
	int data;
	
	printf("\n请输入%d个数据:\n",n);
	for(int i=n;i>0;i--)
	{
		scanf("%d",&data);
		sum += data;
	}
	
	double average = (double)sum/(double)n;
	return average; 
}

int main()
{	

	int n;
	while(1)
	{
		printf("\n请输入数据个数:\n");
		scanf("%d",&n);
		if(n)
		printf("这%d个数据的平均值为%f\n",n,avg(n));
		else break;
	}
	return 0; 
}

求水仙花数

c
// 水仙花数,123. 拆分个十百位的书。 if判断
#include <stdio.h>
int main()
{
	int i;
	int a,b,c;
	for (i=100; i<=999;i++)
	{
		a = i % 10;
		b = i / 10 % 10;
		c = i / 100;
		if (i == a*a*a+b*b*b+c*c*c) //注意是两个等于号
		{
			printf("水仙花数=%d\n",i);
		}
	}
	return 0;
}

输入不定长度的数组

c
#include <stdio.h>
int main(){
	int array[20] = {0};
	int i=0,j;
	do{
		scanf("%d",&j);
		array[i++] = j;
	}while(getchar() != '\n');//当输入回车时停止列表的输入
	for (int i = 0; i < 20; ++i)
	{
		printf("%d\n",array[i]); //打印数组的列表
	}
}

兔子数列

c
#include <stdio.h>
int getNum (int n)
{
	if (n == 1 || n == 2)
		return 1;
	return getNum(n - 2) + getNum(n - 1);
}
int main()
{
	printf("f(1)=%d\n",getNum(1));
	printf("f(2)=%d\n",getNum(2));
	printf("f(3)=%d\n",getNum(3));
	printf("f(4)=%d\n",getNum(4));
	printf("f(5)=%d\n",getNum(5));
	printf("f(12)=%d\n",getNum(12));
	return 0;
}

借书问题

5本书,借给三个人,每人每次只能借一本,有多少种借书方案

C
#include <stdio.h>
int main()
{
	int num=1;
	for (int i = 1; i < 6; ++i)
	{
		for (int j = 1; j < 6; ++j)
		{
			for (int k = 1; k < 6; ++k)
			{
				if (i!=j&j!=k&i!=k)
				printf("[%d]:%d %d %d\n",num++,i,j,k);
			}
		}
	}
}

冰雹猜想

c
#include <stdio.h>
int main()
{
	int n;
	int count = 1;  //计数器
	printf("请输入一个数字\n");
	scanf("%d",&n);
	do{
		if (n % 2) //如果不能被2整除,执行if里面的代码
		{
			n = n*3 +1;
			printf("(%d):%d\n",count++,n);
		}
		else
		{
			n = n/2;
			printf("(%d):%d\n",count++,n);
		}
	}while(n!=1); //!= 不等于,不相等返回真
	return 0;
}

打渔还是晒网

c
#include <stdio.h>
int main()
{
	int i,x,y,z;
	printf("请输入多少天后\n");
	scanf("%d%d%d",&x,&y,&z);
	x = x-1990;
	y = y-1;
	z = z-1;
	i = x*365+y*30+z;
	x = i % 5;
	printf("%d",i);
	switch(x)
	{
		case 0:printf("晒网");
		break;
		case 1:printf("打渔");
		break;
		case 2:printf("打渔");
		break;
		case 3:printf("打渔");
		break;
		case 4:printf("晒网");
		break;
	}
}

判断车牌号

c
// 判断车牌号
#include <stdio.h>
int main()
{
	int i,j,k,temp;
	for (int i = 0; i < 9; ++i)
	{
		for (int j = 0; j < 9; ++j)
		{
			if (i != j)
			{
				k = i*1000+i*100+j*10+j;
				for (temp=30;temp<=99;temp++)
				{
					if (temp*temp == k)
					{
						printf("%d\n",k);
					}
				}
			}
		}
	}
}

斐波那契数列

前面两数之和等于后面

C
#include <stdio.h>
int main()
{
	long fib1=1,fib2=1,fib;
	printf("%d\n",fib1);
	printf("%d\n",fib1);
	for (int i = 3; i <= 30; ++i)
	{
		fib = fib1+fib2;
		printf("%d\n",fib);
		fib1 = fib2;
		fib2 = fib;
	}
}

最佳存款方案

c
//假设银行一年整存零钱的月息为0.63%,现在某人手中有一笔钱,他打算在今后的5年中的每年年底取出1000元,到第五年时刚好取完,请算出他存钱时应该存入多少。

#include <stdio.h>
int main()
{
	double b;
	b = 1000/(0.0063*12+1); //第五年年初存款
	printf("%.2f\n",b);
	for (int i = 0; i < 4; ++i) //循环四次
	{
		b = (b+1000)/(0.0063*12+1);
	}
	printf("%.2f",b);
}

从1到n的排序

c
//从1到n的累加
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n=1,t,count=1;
    printf("请输入n=");
    scanf("%d",&t);
    while (n<t) {
        n++;
        count=n+count;
    }
    printf("%d",count);
    system("pause");
}

比较两个数的大小

c
#include <stdio.h>
int main()
{
	int a,b;
	printf("请输入两个整数:\n");
	scanf("%d%d",&a,&b);
	printf("%d较大",(a>b?a:b));//含义为,如果a>b成立则输出a,否则输出b;
	return 0;
}

求最大值和最小值

c
/*
	求最值问题;
	最大值,最小值;
	浮点数,数组;
	2021年11月26日20:40:48
*/
//解法一
#include <stdio.h>
int main()
{
	float nums[10],max=0;
	int i,temp;
	printf("请输入数的个数:");
	scanf("%d",&temp);
	for (i=0;i<temp;i++)
	{
		scanf("%f",&nums[i]);
	}
	float min=nums[0];
	for (i=0;i<temp;i++)
	{
		if (max<nums[i])
		{
			max =  nums[i]; 
		}
		if (min>nums[i])
		{
			min =  nums[i]; 
		}
	}
	printf("最小值是:%.2f\n最大值是:%.2f\n",min,max);
}
//解法二(冒泡排序)
#include <stdio.h>
int main()
{
	int nums[10];
	int i,j,t,min,max;
	printf("请输入10个数:\n"); 
	for (i=0;i<10;i++)
	{
		scanf("%d",&nums[i]);
	}
	for (j=1;j<10;j++)
	{
		for (int i=0;i<10-j;i++)
		{
			if (nums[i]>nums[i+1])
				{
					max = nums[i+1];
					nums[i+1] = nums[i];
					nums[i] = max;
				}
		}
	}
	printf("排列后的顺序为:");
	for (int t = 0; t < 10; ++t)
	{
		printf("%d ",nums[t]);
	}
	printf("\n");
	printf("最小值是:%d\n",nums[0]);
	printf("最大值是:%d\n",nums[9]);
}

投票系统

c
//关键数据:
//int n:选民数
//int a[100],选民投票数据
//int b[6],候选人得票数 


#include <stdio.h>
int main ()
{
	int i,n,a[100],b[6]={0,0,0,0,0,0};
	
	printf("投票人的数目:\n");
	scanf ("%d",&n);
	printf("请输入 1 、2、3、4、5选择候选人 ,0=弃权:\n");
	for(i=0;i<n; i++)
	{
		int k; 
	 	scanf ("%d",&k);
	 	a[i]=k; 
	 	
	 	if( k>0&&k<6) b[k]++;
		else b[0]++; 
    }; 

	int j,max=0;
	for(i=1;i<6;i++)  
	{
		if(max<b[i])
		{
		  max=b[i];
		  j=i;
		}  
	}
	char *name[] = {"废票","一号","二号","三号","四号","五号"};
	for(i=1;i<6;i++)
	{
		printf("%s选手的票数是%d\n",name[i],b[i]); 
	}
	printf("废弃的票数是%d\n\n",b[0]);
	printf("获胜者是%s\n\n",name[j]); 
}