分支与循环编程基础练习

1.求1~100  的3 的倍数

# include <stdio.h>
int main()
{
	for (int i = 1; i <= 100; i++)
	{
		if (i % 3 == 0)
		{
			printf("%d  ", i);
		}
	}

	return 0;
}

2.1到 100 的所有整数中出现多少个数字6

# include <stdio.h>
int main()
{

	int count = 0;//计数器
	for (int i = 1; i <= 100; i++)
	{
		if (i % 10 == 6 )//个位为6
		{
			count++;
		}
	   if (i / 10 == 6 )//十位为6
		{
			count++;
		}
	}
	printf("%d", count);



	return 0;
}

3.计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值

# include <stdio.h>
int main()
{
	float i = 1;
	double sum = 0;
	for (int j= 1;j <= 100; j++)
	{
		sum += i / j;
		i *= -1;//符号变化

	}
	printf("%lf", sum);


	return 0;
}

3.乘法口诀表

# include <stdio.h>
int main()
{
	for (int i = 1; i <= 9; i++)
	{
		for (int j = 1; j <= i; j++)
		{
			printf("%d*%d=%d ", i, j, i * j);

		}
		printf("\n");

	}

	return 0;
}

4.判断三角形

# include <stdio.h>
int main()
{
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);
	if (a + b > c && a + c > b && b + c > a)
	{
		if (a == b  || b ==c || a==c)
		{
			printf("等腰三角形");
		}
		else if (a == b && b == c)
		{
			printf("等边三角形");
		}
		else
		{
			printf("其他三角形");
		}
	}
	else
	{
		printf("构成不辽三角形");
	}

	return 0;
}

5.数字金字塔

# include <stdio.h>
int main()
{
	int i, j;

	for (i = 1; i <= 4; i++)//列
	{
		for (int k = i; k < 4; k++)//每一行打印多少空格
		{
			printf(" ");
		}

		for (j = 1; j <= i; j++)//行
		{
			printf("%d " , i);
		}
		printf("\n");
	}

	return 0;
}

 6.计算1!+2!+3!+...+10!的值

# include <stdio.h>
int main()
{
	int sum = 0;

	for (int i = 1; i <= 10; i++)//1到10的范围
	{
		int flag = 1;
		for (int j = 1; j <= i; j++)//1到10的每个数字的阶乘
		{
			flag *= j;
		}
		sum += flag;//存储每一个数字的阶乘
	}
	printf("%d", sum);


	return 0;
}

7.打印2000到3000的闰年

#  include <stdio.h>
int main()
{
	for (int i = 2000; i <= 3000; i++)
	{
		if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0))
		{
			printf("%d ", i);
		}
		else
			continue;
	}




	return 0;
}

8.输入若干成绩,输入负数为止,统计最高成绩,和最小成绩

# include <stdio.h>
int main()
{

  int grade;//分数
  int max = 1;
  int min = 99;


while(1)
{
scanf("%d" , grade);

  if(grade <0)
   break;

 if(grade > max)
   max = grade;

if(grade < min)
  min = grade;


}
printf("最大数为:%d , 最小数为:%d" , max, min);



   return 0;
}

9.输入两个整数求他们的最大公约数和最小公倍数之和

# include <stdio.h>
int main()
{

 int a ,b;
 scanf("%d %d" , &a,&b);
 int a1 = a;
 int a2 = b;

while(b1)//欧几里得算法
{
  int ys = a1 % b1;
  a1 = b1;
  b1 = ys;
}
//循环结束后a1就是最大公约数

int min_gb = a * b / a1;

int sum = min_gb +a1;


printf("%d" , sum);



   return 0;
}

10.求1+12+123+1234+12345的和

# include <stdio.h>
int main()
{
    int sum = 0;
	int cj = 0;
	for (int i = 1; i <= 5; i++)
	{
		cj = cj * 10 + i;
    	sum += cj;	
    }
	printf("%d", sum);



	return 0;
}

11.1000以内的完数

# include <stdio.h>
int main()
{
	int i = 0;
	int temp = 0;
	for ( i = 1; i < 1000; i++)
	{
		 int sum = 0;
		for (int j = 1; j <= i-1; j++)
		{
			if (i % j == 0)
			{
				sum += j;
			}
		}
		if (sum == i)
		{
			printf("%d ", i);
			temp = i;
		}
		else
			continue;
	}

	
	return 0;
}

12.水仙花数

# include  <stdio.h>
# include <math.h>
int main()
{
	

	for (int i = 100; i < 1000; i++)
	{	
		int sum = 0;
		int temp = i;
		while (temp)
		{
			sum += (int)pow(temp % 10, 3);
			temp /= 10;
			
		}
		if (sum == i)
			printf("%d ", i);
		else
			continue;

	}


	return 0;
}

13.求a+aa+aaa+aaaa+a....a n是项数通过键盘输入,a是数字

# include <stdio.h>
int main()
{
	printf("请输入你的数字");
	int num = 0;
	scanf("%d", &num);
	printf("请输入你的项数");
	int n = 0;
	scanf("%d", &n);
	int sum = 0;
	int flag = 0;
	for (int i = 1; i <=n; i++)
	{
		flag= flag * 10 + num;
		sum += flag;
	}
	printf("%d", sum);

	return 0;
}

14.打印菱形

# include <stdio.h>//打印菱形,分两部分打
int main()
{
	int n = 0;
	scanf("%d", &n);
	//上部分
	for (int i = 1; i <= n; i++)
	{
		for (int k = i; k < n; k++)
		{
			printf(" ");
		}
		for (int j = 1; j <= i; j++)
		{
			printf("* ");
		}
		printf("\n");
	}

	//下部分

	for (int i = 1; i <= n - 1; i++)
	{
		for (int k = 1; k <= i; k++)
		{
			printf(" ");
		}
		for (int j = i; j <= n - 1; j++)
		{
			printf("* ");
		}
		printf("\n");
	}





	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值