第3次作业后来加的作业 2018-10-26 循环2

第3次作业后来加的作业
2018-10-26

以下内容仅供娱乐,欢迎随时探讨,请多指教!
后来加的作业:
利用循环嵌套完成下列各题:
1、求出100以内的素数。

#include"stdio.h"
#include"math.h"
int main()
{
	int i,k,t=0; 
	printf("1\t");
	for(i=2;i <= 100;i++)
	{
		for(k=2;k <= sqrt(i);k++)
		{
			if(i%k == 0)t=1;
		}
		if(0 == t)printf("%d\t",i);
		t=0;
	}
    return 0;
}

2、打印形状为正方形和直角三角形(上三角和下三角)的乘法九九表。
正方形

#include"stdio.h"
int main()
{
	int i,k; 
	for(i=1;i < 10;i++)
	{
		for(k=1;k <10;k++)
		{
			printf("%d*%d=%-3d",i,k,i*k);
		}
		printf("\n");
	}
    return 0;
}

上三角

#include"stdio.h"
int main()
{
	int i,k;
	// 控制行 
	for(i=1;i < 10;i++)
	{//控制列 
		for(k=1;k <= 10-i;k++)
		{
			printf("%d*%d=%-3d",k,i,i*k);
		}
		printf("\n");
	}
    return 0;
}

下三角

#include"stdio.h"
int main()
{
	int i,k;
	// 控制行 
	for(i=10;i > 0;i--)
	{//控制列 
		for(k=1;k <= 10-i;k++)
		{
			printf("%d*%d=%-3d",k,i,i*k);
		}
		printf("\n");
	}
    return 0;
}

3、将一笔零钱(大于8分,小于1元,精确到分)换算成1分、2分和5分的硬币组合。输入金额,输出共有多少种换法及换算的方案。

#include"stdio.h"
int main()
{
int a,b,c,money,count=0;
printf("input money(精确到分 角分)\n");
scanf("%d",&money);
if(money<8 || money>99)
printf("wrong input!\n"); 
else
{
	for(a=0;a <= 100;a++)
	for(b=0;b <= 100;b++)
	for(c=0;c <= 100;c++)
	{
		if(a+2*b+5*c == money)
		{
			printf("%d分=%2d个1分+%2d个2分+%2d个5分\n"
			,money,a,b,c);
			count++;
		}
	}
	printf("\n共有%d种换法\n",count);
}
return 0;
}

4、百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担。编写程序求需大、中、小马各多少匹。

#include"stdio.h"
int main()
{
	int a,b,c,count=0;
	for(a=0;a <= 100;a++)
	for(b=0;b <= 100;b++)
	for(c=0;c <= 100;c++)
	{
		if(200 == 6*a+4*b+c)
		{
			printf("大马%2d中马%2d小马%2d\n"
			,a,b,c);count++;
		}
	}
	printf("有%d种\n",count);
	return 0;
}

5、输入一个正整数,质因数分解。例如:输入18,输出18=233.

#include"stdio.h"
int main()
{
    int n,i;
    printf("请输入整数\n");
    scanf("%d",&n);
    printf("%d=",n);
    for(i=2;i <= n;i++)
    {// 从小开始分解,开始都为质数
        while(n%i == 0)
        {
            printf("%d",i);
            n/=i;
            if(n!=1) printf("*");
        }
    }
    printf("\n");
    return 0;
}

7、有一个数学等式:AB**CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。

#include"stdio.h"
int main()
{
   int i,j,m,n;
   for(i=10;i<100;i++)
   {
   	for(j=10;j<100;j++)
   	{
   		m=(i%10)*10+i/10;n=(j%10)*10+j/10;
   		if(i*j == m*n)
   		printf("%d*%d=%d*%d\n",i,j,m,n);
	}
	}
   return 0;
}

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

#include"stdio.h"
int main()
{
	int i,j,k;
	//以下为三重循环
	for(i=1;i<5;i++) 
	for(j=1;j<5;j++)
	for (k=1;k<5;k++)
	{
	if (i!=k&&i!=j&&j!=k) //确保i、j、k三位互不相同
	printf("%d%d%d\n",i,j,k);
	}
    return 0;
}

9、一个数如果恰好等于它的因子(包括1,但不包括这个数本身)之和,这个数就称为完数。求100之内的所有完数。

#include"stdio.h"
int main()
{
int i,k,sum=0;
printf("1\n");
for(i=1;i < 101;i++)
{
	for(k=1;k < i;k++)
	{
		if(i%k == 0)
		{
			sum+=k;
		}
	}
	if(sum == i)printf("%d\n",i);
	sum=0;
} 
    return 0;
}

10、打印下列图案,注意行数是任意的,可以由用户输入行数n

   *
  ***
 *****
*******
 *****
  ***
   *

代码

#include "stdio.h"
#include "math.h"
int main()
{
    int n,i,j,k,t;
    printf("input ")
    scanf("%d",&n);
    if(n%2==0) n-=1,t=2;
    for(i=-n/2;i<=n/2;i++)
    {
        for(j=1;j<=abs(i);j++) printf(" ");
        for(k=1;k<=n-abs(i)*2;k++) printf("*");
        if(i==0&&2==t)
        {
            printf("\n");
            for(k=1;k<=n-abs(i)*2;k++)
            printf("*");
        }
        for(j=1;j<=abs(i);j++) printf(" ");
        printf("\n");
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43310774/article/details/83422149