c语言写的一些小程序

3.使用c语言编写程序,在屏幕打印 9 * 9乘法表

#include<stdio.h>

int main()
{
	int i = 0;
	int j = 0;
	for (i = 1; i < 10; i++)
	{
		for (j = 1; j <= i; j++)  //注意条件的判断
		{
			printf("\t%d*%d =%d", i, j, i*j);//垂直制表符 用于各列对齐
		}
		printf("\n");
	}
	printf("\n");
	return 0;
}

4.使用c语言编写程序,求10个整数中的最大值

#include<stdio.h>

int main()
{
	int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
	int max = 0;
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		if (max < arr[i])
		{
			max = arr[i];
		}
	}
	printf("The max is %d \n", max);
	return 0;
}

6.使用c语言编写程序,求100以内的所有素数(质数)

#include<stdio.h>

int main()
{
	int i = 2;
	int count = 0;
	printf("100内的素数有:\n");
	for (i = 2; i <= 100; i++)
	{
		int j = 2;
		while (j < i)
		{
			if (i % j != 0)
			{
				j++;
			}
			else
			{
				break;
			}
		}
		if (j >= i )
		{
			count++;
			printf("%d ", i);
		}
	}

	printf("\n总个数为: %d 个", count);
	printf("\n");
	return 0;
}

7.使用c语言编写程序,求两个数的最大公约数

#include<stdio.h>

void swap(int* m, int* n)
{
	int tmp = 0;
	tmp = *m;
	*m = *n;
	*n = tmp;
}
int main()
{
	int m = 0;
	int n = 0;
	int r = 1;
	int j = 0;
	printf("请输入两个数:\n");
	scanf("%d %d", &m, &n);
	j = m*n;
	if (m<n)
	{
		swap(&m, &n);
	}

	if (m % n == 0 && n != 0)
	{
			printf("最大公约数为: %d\n", n);
		return 0;
	}
	else
	{
		while (m % n != 0 && n !=0)
		{
			r = m%n;
			m = n;
			n = r;
		}
		
	}
	printf("最大公约数为: %d\n",r);
	return 0;
}

8.使用C语言编写程序,求两个数的最小公倍数

#include<stdio.h>

void swap(int* a, int* b)
{
	int tmp = 0;
	if (*a < *b)
	{	
		tmp = *a;
		*a = *b;
		*b = tmp;
	}
}

int main()
{
	int a = 0;
	int b = 0;
	int r = 1;
	int m = 0;
	printf("请输入两个数:\n");
	scanf("%d %d", &a, &b);
	m = a*b;
	if (a < b)
	{
		swap(&a, &b);
	}
	if (a % b == 0 && b != 0)
	{
		if (a == b)
		{
			printf("a,b 的最小公倍数为:%d \n", a);
		}
		return 1;
	}
	else
	{
		while (a % b != 0 && b !=0)
		{
			r = a%b;
			a = b;
			b = r;
		}
		m = m / r;
		printf("a,b 的最小公倍数为 :%d\n", m);
	}

	return 0;
}

 9、使用c语言编写程序,交换两整数的值

#include<stdio.h>

int main()
{
	int a = 2;
	int b = 3;
	printf("a: %d	b: %d\n", a, b);
	a = a + b;
	b = a - b;
	a = a - b;
	printf("a: %d	b: %d\n", a, b);

	printf("a: %d	b: %d\n", a, b);
	a = a * b;
	b = a / b;
	a = a / b;
	printf("a: %d	b: %d\n", a, b);

	printf("a: %d	b: %d\n", a, b);
	a = a ^ b;  //10 ^ 11 = 01
	b = a ^ b;  //01 ^ 11 = 10
	a = a ^ b;	//01 ^ 10 = 11
	printf("a: %d	b: %d\n", a, b);
	return 0;
}

10、使用C语言编写一个函数,函数的功能是:交换两个整数的值

#include<stdio.h>
void Swap(int* s, int* p)
{
	int tmp = *s;
	*s = *p;
	*p = tmp;
}
int main()
{
	int a = 2;
	int b = 3;
	printf("before change:	a: %d	b: %d\n", a, b);
	Swap(&a, &b);
	printf("after change:	a: %d	b: %d\n", a, b);
	return 0;
}


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

程序分析:可填在百位,十位,个位的数字都是1 2 3 4 组成所有的排列后再去掉不满足条件的


#include<stdio.h>

int main()

{
	int n = 0;
	int m = 0;
	int k = 0;
	int i = 5;
	int h = 5;
	int l = 5;
	int j = 0;
	int count = 0;
	int arr[100];
	for (i = 1; i <= 4;i++)
	{
		n = i * 100;
		for (h = 1; h <= 4; h++)
		{
			m = h * 10;
			for (l = 1; l <= 4; l++)
			{
				k = l * 1;
				arr[j] = n + m + k;
				j++;
			}
		}
	}

	for (j = 0; j < 64; j++)//123
	{
		k = arr[j] % 10;		//个位
		n = arr[j] / 100;		//百位
		l = arr[j] % 100 / 10;	//十位
		if (k != n && k != l && n != l )
		{
			count++;
			printf("%d ", arr[j]);
		}
	}

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


12.使用C语言编写程序,在屏幕输出2000之前的所有闰年和闰年的个数

#include<stdio.h>

int main()
{
	int year = 0;
	int count = 0;
	for (year = 1; year <= 2000; year++)
	{
		if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
		{
			count++;
			printf("%d ", year);
		}
	}
	printf("\n");
	printf("count : %d\n", count);
	printf("\n");
	return 0;
}


13、写程序 求解2/1,3/2,5/3,8/5,21/13...求这个数列的前20项之和。

#include<stdio.h>

int main()
{
	int m = 1;
	int n = 2;
	int sum = 0;
	for (int i = 0; i < 20; i++)
	{
		sum = sum + n / m;
		m = n;
		n = m + n;
	}
	printf("sum is %d\n", sum);
	return 0;
}

华氏 温度   摄氏温度  转换
#include<stdio.h>

int main()
{
	float F;
	float C;
	printf("Please input Fahrenheit:\n");
	scanf("%f", &F);
	C = 5 * (F - 32) / 9;
	printf("Centidegree is %.2f \n", C);
	return 0;
}


#include<stdio.h>

int main()
{
	int score = 0;
	printf("Input score(0-100):\n");
	scanf("%d", &score);
	if (score < 60)
	{
		printf("%c\n", 'E');
		return;
	}
	if (score >= 60 && score <= 69)
	{
		printf("%c\n", 'D');
		return;
	}
	if (score >= 70 && score <= 79)
	{
		printf("%c\n", 'C');
		return;
	}
	if (score >= 80 && score <= 89)
	{
		printf("%c\n", 'B');
		return;
	}
	if (score >= 90 && score <= 100)
	{
		printf("%c\n", 'A');
		return;
	}
	else
	{
		printf("Input error!\n");
	}
	return 0;
}

14、求解s = a+aa+aaa+……+aaa..a的值 a和n由键盘输入控制
#include<stdio.h>

int Sum(int a, int n)
{
	int A = 0;
	int Sum = 0;
	for (int i = 1; i <= n; i++)
	{
		A = A * 10 + a;
		Sum = Sum + A;
	}
	return Sum;
}

int main()
{
	int a = 0;
	int n = 0;
	printf("Please input a and n\n");
	scanf("%d %d", &a, &n);
	int ret = Sum(a, n);
	printf("%d\n", ret);
	return 0;
}

15、一球从100米高度落下,每次反弹高度为原高度的一半;在落下,求第十次落地时,共经过多少米?第十次反弹多高?

#include<stdio.h>

int main()
{
	int H = 100;
	int i = H;
	int n = 10;
	int sum = 0;
	int count = 0;
	while (i)
	{
		count++;
		i /= 2;
	}
	printf("总共能跳 %d 次\n", count);
	while (n--)
	{
		sum += H;
		H /= 2;

		if (H == 0)
		{
			break;
		}
	}
	printf("sum is %d \n", sum);
	printf("H is %d \n", H);
	return 0;
}


16、猴子吃桃问题:第一天摘下若干桃子,吃了一半,没过瘾,又多吃了一个,以后每天如此,到第十天时,只剩一个桃子,求总共多少桃子?
设有x个桃子,x - ((x/2+1) + ((x/2+1)/2 +1) +……+1 )= 0

#include<stdio.h>
int main()
{
	int day = 9;
	int sum = 1;
	while (day--)
	{
		sum= (sum + 1) * 2;
	}
	printf("sum is %d\n", sum);
	return 0;
}


17、求值: 1-1/2+1/3-1/4+……-1/100	★★★

#include<stdio.h>
int main()
{
	float sum = 0;
	for (int i = 1; i <= 100; i++)
	{
		if (i % 2 != 0)
		{
			sum += (float)1 / i; //强转
		}
		else
		{
			sum -= (float)1 / i;
		}
	}
	printf("sum is %f \n", sum);
	return 0;
}

18、求值: !1+!2+……+!20

#include<stdio.h>

int main()
{
	int n = 5;
	int mul = 1;
	int sum = 0;
	for (int i = 1; i <= n; i++)
	{
		mul = 1;						//注意每次进来mul置1
		for (int j = 1; j <= i; j++)
		{
			mul *= j;
		}
		sum += mul;
	}
	printf("sum is %d \n", sum);
	return 0;
}

19、判断一个数是不是回文数 (回文数也是一个数字,特点是正反序是同一个数字 如:1234321 1331就是回文数)
思路:因为是整数,所以可以求出该整数的翻转后的数值,看是否与原来整数相等。如果相等,则是回文数,否则不是。
		翻转整数代码如下,返回值为翻转后的整数。

#include<stdio.h>

int main()
{
	int a = 0;
	int rev = 0;
	printf("Please input :\n");			//1、itoa() 转换为字符串
	scanf("%d", &a);
	int b = a;
/****************************************************************************/
	//while (a != 0)
	//{
	//	rev = rev * 10 + a % 10;	//2、数字反转法
	//	a /= 10;
	//}
	//if (b == rev)
	//{
	//	printf("是回文数!\n");
	//	return 0;
	//}
	//printf("不是回文数!\n");
/****************************************************************************/
	//比较第一位和最后一位 相等 继续比较  不相等返回
	int div = 1;
	while (a / div >= 10)
	{
		div *= 10;
	}
	while (a != 0)
	{
		int left = a / div;
		int right = a % 10;		//3、数字位判断
		if (left != right)
		{
			printf("不是回文数!\n");
			return 0;
		}
		a = (a % div) / 10;
		div /= 100;
	}

	printf("是回文数!\n");
/****************************************************************************/
	return 0;
}


20、判断一个字符串是不是回文字符串

#include<stdio.h>
#include<string.h>
int main()
{
	char s[50];
	printf("Please input :\n");			
	scanf("%s", s);
	int len = strlen(s) -1;
	char* begin = s;
	char* end = s + len;

	while (begin <= end)
	{
		if (*begin != *end)
		{
			printf("不是回文字符串!\n");
			return 0;
		}
		begin++;
		end--;
	}
	printf("是回文字符串!\n");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值