C基础day5作业

文章介绍了使用C语言实现的基本算法,包括寻找3-100范围内的质数和完美数,打印字母图形,解决百钱买百鸡问题,以及数据位操作和交换两个数的不同方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用break求3-100中的质数

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, const char *argv[])
{
	int i = 0;
	int j = 0;
	for(i=3;i<=100;i++){//3-100的数
		for(j=2;j<i;j++){//除数
			if(i%j==0)
				break;
		}
		if(i==j)
			printf("%d是质数\n",i);
	}

	return 0;
}

2.输出3-100以内的完美数,(完美数:因子和(因子不包含自身)=数本身)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, const char *argv[])
{
	int i = 0;
	int j = 0;
	int sum = 0;
	for(i=3;i<=100;i++){
		sum = 0;
		for(j=1;j<i;j++){
			if(i%j==0)
				sum += j;
		}
		if(i==sum)
			printf("%d 是完美数\n",i);
	}
	return 0;
}

3.打印字母图形

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, const char *argv[])
{
	int i = 0;
	int j = 0;
	for(i=0;i<6;i++){
		for(j=0;j<i;j++){
			printf("_");
		}
		for(j=0;j<=i;j++){
			printf("%c",'F'-j);
		}
		putchar(10);
	}
	return 0;
}



4.百钱买百鸡问题,一百元钱去买鸡,公鸡5元,母鸡3元,三只小鸡1元,问买一百只鸡,有多少种买法。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, const char *argv[])
{
	int m = 0;//公鸡
	int w = 0;//母鸡
	int c = 0;//小鸡
	int num = 0;
	for(m=0;m<=100/5;m++){
		for(w=0;w<=33;w++){
			for(c=0;c<=100;c++){
				if((m+w+c)==100 && (5*m+3*w+c/3)==100 && c%3==0){
					printf("公鸡=%d 母鸡=%d 小鸡=%d\n",m,w,c);
					num++;
				}
			}
		}
	}
	printf("一共%d中买法\n",num);
	return 0;
}


5.将data第[4]位清0,保持其他位不变;

将data第[7]位置1,保持其他位不变;

将data第[31:28]位清0,保持其他位不变;

将data第[7:4]位置1,保持其他位不变

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, const char *argv[])
{
	int data = 0xffffffff;
	data = data & ~(1<<4);
	printf("%#x\n",data);
	puts("----------------------------");
	data = 0x0;
	data = data | (1<<7);
	printf("%#x\n",data);
	puts("----------------------------");
	data = 0xffffffff;
	int i = 0;
	for(i=28;i<32;i++){
		data = data & ~(1<<i);
	}
	printf("%#x\n",data);
	puts("----------------------------");
	data = 0x0;
	int j = 0;
	for(j=4;j<=7;j++){
		data = data | (1<<j);
	}
	printf("%#x\n",data);
	puts("----------------------------");
	return 0;
}

6.思考交换两个数的方法

        6.1 借助变量参与交换(需要定于临时变量)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, const char *argv[])
{
	int i = 10;
	int j = 20;
	int temp = 0;
	temp = i;
	i = j;
	j = temp;
	printf("i = %d   j = %d\n",i,j);
	return 0;
}

        6.2采用异或的方法(使用较为简便)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, const char *argv[])
{
	int i = 10;
	int j = 20;
	i ^= j;
	j ^= i;
	i ^= j;
	printf("i = %d   j = %d\n",i,j);
	return 0;
}

        6.3采用加减法进行交换(其中a,b要足够大)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, const char *argv[])
{
	int a = 10;
	int b = 20;
	a = a+b;
	b = a-b;
	a = a-b;
	printf("a = %d   b = %d\n",a,b);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值