最近代码的练习补交

1.喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。

#include <stdio.h>
int main()
{
	int money = 20;   //共有20元
	//int coca = 1;   //一瓶汽水1元
	//float bottle = 0.5;   //2个空瓶可以换1瓶汽水
	int count = 0;    //有几个空瓶
	int buy = 0;      //共买了几瓶汽水
	while (money != 0 || count == 2)
	{
		money--;    //买一瓶,钱少一元
		count++;	//买一瓶,就多一个空瓶
		buy++;		//只要while循环一次,说明就买了1瓶。 用来统计买了几瓶
		if (count == 2)  //当有两个空瓶时,就可以再买一瓶汽水
		{
			buy++;	//多买一瓶汽水
			count = 0;	//空瓶置为0
			count++;  //又多出一个空瓶
		}
	}
	printf("共买了汽水 %d 瓶。",buy);

	return 0;
}

其中if循环也可以这样写

if(count==2)
{
    moner++;
    count = 0;

}

2.实现一个函数is_prime,判断一个数是不是素数。利用上面实现的is_prime函数,打印100到200之间的素数。

#include <stdio.h>
int s_prime(int i)  //该函数用来判断一个数是不是素数,打印并统计共有几个素数。
{
	int count = 0;   //用来统计100-200之间共有几个素数。
	for (int i = 100; i < 201; i++)
	{
		int j = 0;
	    
		for ( j = 2; j < i; j++)
		{
			if (i % j == 0)  //当 i--100到200之间的一个数字,被j整数时,说明该数不是素数
				break;
		}
		if (i == j)   //当j一直到i时,i依然没有被整数,说明i是一个素数。
		{
			printf("%d ",i);   //打印该数字
			count++;   //计数器加一
		}
		
	}
	return count;  //可以没有返回值,只是为了统计有几个素数,加入了一个返回值。
}
int main()
{
	int i = 0;
	int j = 0;
	
	int ret = s_prime(i);  //用ret来接收函数的返回值,共有几个素数
	printf("\n");
	printf("该范围内共有素数 :%d 个", ret);  //输出共有几个素数
	return 0;
}

该代码只能实现100-200之间的素数打印,并对其计数。那么该如何实现一个数,是不是素数。同理,判断一个范围内的有几个素数,并依次打印素数,又是如何实现的呢?

接下来,该代码用来实现一个数是不是素数。当输入0的时候,结束该判断程序。

#include <stdio.h>

int prime_number(int i)
{
	int j = 0;   //依次递增到i,判断能不能被整除
	for (j = 2; j < i; j++)
	{
		if (i % j == 0)
		{
			return 0;   //当return 0 时,打印‘该数不是素数’
		}
			
	}
	return 1;   //当return 1 时,打印‘该数是素数’
}

int main()
{
	int i = 0;
	printf("请输入需要判断的数字:");
	while (scanf("%d", &i) != 0  && i != 0)
	{
		int ret = prime_number(i);
		if (ret)
			printf("该数是素数\n"); 
		  //if为真时,表明函数返回值是1
		else
			printf("该数不是素数\n");
		    //如果执行该语句,说明if条件为假,说明函数返回值是0
		printf("请输入需要判断的数字:");
		
	}

	return 0;
}

接下来,我们对一个范围内的数字,有没有素数。代码实现的要求:打印是不是素数。

#include <stdio.h>
int main()
{
	int i = 0, j = 0;
	printf("请输入想要判断的范围:");
	scanf("%d%*c%d", &i, &j); //判断的范围:[i,j]
	for (int m = i; i <= m  && m <= j; m++)  //m是在该范围内 从i一直到j的 一个数字
	{
		int n = 2;
		for (n; n < m; n++)  //n是判断素数的条件
		{
			if (m % n == 0)
			{
				printf("%d不是素数\n", m);
				break;
			}
		}
		if (m == n)
			printf("%d是素数\n", m);
		/*if (m == j)  
			break;*/
	}
	return 0;
}

3.交换两个整型数据类型的值,要求:不使用第三个变量。

#include <stdio.h>
int main()
{
	int a = 10, b = 20;
	a = a + b;
	b=a-b;
	a = a - b;
	printf("a=%d,b=%d", a, b);

	return 0;
}
#include <stdio.h>
int main()
{
	int a = 10, b = 20;
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	
	printf("a=%d,b=%d", a, b);
	return 0;
}

4.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定

我们先来实现输入一个数,输出乘法表输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。

#include <stdio.h>

int main()
{
	int i, j ,k; // i控制是‘几*几’的乘法表   j和k用来控制“m*m=x乘法表”中‘m’是几。    
	scanf("%d", &i);//输入几*几的乘法表
//但是这样写,只能打印行数和列数一样的乘法表,那么如何实现想几行几列呢?下一个代码我们来实现。

	for (j = 1; j <= i; j++)
	{
		for (k = 1; k <= i; k++)
		{
			printf("%d*%d=%3d\t", j, k,j*k);
		}

		printf("\n");
	}
	return 0;
}

实现输入几行几列,就输出几行几列的乘法表,代码如下。

#include <stdio.h>
int main()
{
	int i, j, m,n;    //实现‘m*n=x’乘法表,i控制m;j控制n;m、n控制循环
	scanf("%d%*c%d", &i, &j);     //输入需要打印的乘法表。 
             //'%*c'的作用,不管中间隔了哪个字符,都可以把他在输出的时候忽略掉,但是只能忽略一个
	for (m = 1; m <= i; m++)    //m控制行循环
	{
		for (n = 1; n <= j; n++)    //控制列循环
		{
			printf("%d*%d =%2d  ", m, n, m * n);
		}
	}

	
	return 0;
}

但是这样,会有很多组数据重复出现,暂时还没有想出来怎么解决。

5.输入10个数,并将其放入一个数组当中,求10个数的平均值。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int i = 0;
	int arr[10] = { 0 };  //创建一个数组,用来存放输入的10个数字
	for (i = 0; i < 10; i++)
	{
		printf("请输入10个整数:");
		scanf("%d", &arr[i]);
	}
	int sum = 0;  //用来存放-->数组求和后的值
	for (int j = 0; j < 10; j++)
	{
		sum = sum + arr[j];
	}
	sum = sum / 10;
	printf("这10个整数的平均值是:%d\n", sum);
	return 0;
}

6.

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值