第3次作業後來加的作業 2018-10-26 迴圈2
阿新 • • 發佈:2018-12-08
第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");
}
}