題目:有1,2,3,4個數。妳能編多少個不同的三位數?它們壹共多少錢?
1.程序分析:能填百、十、單位的數都是1、2、3、4。走之前把所有的事情都安排好
刪除不符合條件的安排。
2.程序源代碼:
主()
{
int i,j,k;
printf(" \ n ");
for(I = 1;我& lt5;I++)/*以下是三重循環*/
for(j = 1;j & lt5;j++)
for(k = 1;k & lt5;k++)
{
如果(我!= k & amp& amp我!= j & amp& ampj!=k) /*確保I、J和K互不相同*/
printf("%d,%d,%d\n ",I,j,k);
}
}
程序2
題目:壹個整數,加100後是壹個完整的平方數,加168後是壹個完整的平方數。數字是多少?
1.方案分析:如果判斷在65438+百萬以內,開藥前在這個數上加100,再開藥前在這個數上加268。如果開藥後的結果符合以下條件,則為結果。請看具體分析:
2.程序源代碼:
#包含“math.h”
主()
{
long int i,x,y,z;
for(I = 1;我& lt100000;i++)
{ x = sqrt(I+100);/*x是處方加100後的結果*/
y = sqrt(I+268);/*y是168相加後的結果*/
if(x * x = = I+100 & amp;& ampY*y==i+268)/*如果壹個數的平方根的平方等於該數,則說明該數是完全平方數*/
printf("\n%ld\n ",I);
}
}
程序3
標題:輸出9*9公式。
1.程序分析:分支列考慮,***9行9列,I控制行,J控制列。
2.程序源代碼:
#包含“stdio.h”
主()
{
int i,j,result
printf(" \ n ");
for(I = 1;我& lt10;i++)
{ for(j = 1;j & lt10;j++)
{
結果= I * j;
printf("%d*%d=%-3d ",I,j,result);/*-3d表示左對齊,占3位數*/
}
printf(" \ n ");/*每行後換行*/
}
}
程序4
標題:要求輸出棋盤。
1.程序分析:用I控制行,用J控制列,根據I+J之和的變化控制輸出黑方塊還是白方塊。
2.程序源代碼:
#包含“stdio.h”
主()
{
int i,j;
for(I = 0;我& lt8;i++)
{
for(j = 0;j & lt8;j++)
如果((i+j)%2==0)
printf("%c%c ",219,219);
其他
printf(" ");
printf(" \ n ");
}
}
計劃5
題目:經典問題:有壹對兔子,從出生後第三個月開始,每個月生壹對兔子,第三個月後,小兔子每個月生壹對兔子。如果兔子不死,每個月兔子總數是多少?
1.程序分析:兔子的規律是1,1,2,3,5,8,13,21的序列。....
2.程序源代碼:
主()
{
long f1,F2;
int I;
f 1 = F2 = 1;
for(I = 1;我& lt=20;i++)
{ printf(" % 12ld % 12ld ",f1,F2);
if(I % 2 = = 0)printf(" \ n ");/*控制輸出,每行四個*/
f 1 = f 1+F2;/*將前兩個月相加,分配給第三個月*/
F2 = f 1+F2;/*將前兩個月相加,分配給第三個月*/
}
}
程序6
題目:判斷101-200之間有多少素數,輸出所有素數。
1.程序分析:判斷素數的方法:用壹個數除以2到sqrt(這個數),如果能整除,說明這個數不是素數,反之亦然。
2.程序源代碼:
#包含“math.h”
主()
{
int m,I,k,h=0,leap = 1;
printf(" \ n ");
for(m = 101;m & lt=200;m++)
{ k = sqrt(m+1);
for(I = 2;我& lt= k;i++)
如果(m%i==0)
{ leap = 0;打破;}
if(leap) {printf("%-4d ",m);h++;
if(h%10==0)
printf(" \ n ");
}
leap = 1;
}
printf(" \ n總數為%d ",h);
}
程序7
標題:打印出所有的“水仙號”。所謂“水仙花數”,是指三位數,其立方和等於數字本身。例如,153是壹個“水仙花數”,因為153=1立方+5立方+3立方。
1.程序分析:用for循環控制100-999的數,每個數分解成個位、十位、百位。
2.程序源代碼:
主()
{
int i,j,k,n;
printf(“‘水花’號為:“);
for(n = 100;n & lt1000;n++)
{
I = n/100;/*分解成幾百個*/
j = n/10% 10;/*分解成十位數*/
k = n % 10;/*分解成比特*/
if(I * 100+j * 10+k = = I * I * I+j * j * j+k * k * k)
{
printf("%-5d ",n);
}
}
printf(" \ n ");
}
程序8
題目:將壹個正整數分解成質因數。例如,輸入90,打印90=2*3*3*5。
程序分析:分解n的質因數,首先要找到壹個最小的質數k,然後按照以下步驟完成:
(1)如果這個質數剛好等於n,說明分解質因數的過程結束了,打印出來就行了。
(2)如果n
(3)如果n不能被k整除,用k+1作為k的值,重復第壹步。
2.程序源代碼:
/*鄭int被瓜分*/
主()
{
int n,I;
printf(" \ n請輸入壹個數字:\ n ");
scanf("%d ",& ampn);
printf("%d= ",n);
for(I = 2;我& lt= n;i++)
{
而(n!=i)
{
如果(n%i==0)
{ printf("%d* ",I);
n = n/I;
}
其他
打破;
}
}
printf("%d ",n);}
程序9
題目:輸入兩個正整數M和N,求它們的最大公約數和最小公倍數。
1.程序分析:使用滾動除法。
2.程序源代碼:
主()
{
int a,b,num1,num2,temp
printf("請輸入兩個數字:\ n ");
scanf("%d,%d ",& ampnum1。num 2);
if(num 1 & lt;Num2)/*交換兩個數,使大的數放在num1 */
{ temp = num 1;
num 1 = num 2;
num2 = temp
}
a = num 1;b = num2
而(b!=0)/*使用滾動除法,直到b為0 */
{
temp = a % b;
a = b;
b =溫度;
}
printf("gongyueshu:%d\n ",a);
printf("拱北舒:%d\n ",num 1 * num 2/a);
}
程序10
題目:輸入壹行字符,統計英文字母、空格、數字等字符的個數。
1.程序分析:使用while語句,前提是輸入字符不是' \n '。
2.程序源代碼:
#包含“stdio.h”
主()
{ char c;
int字母=0,空格=0,數字=0,其他= 0;
printf("請輸入壹些字符\ n ");
while((c=getchar())!='\n ')
{
if(c & gt;= ' a ' & amp& ampc & lt= ' z ' | | c & gt= ' A ' & amp& ampc & lt='Z ')
字母++;
else if(c== ' ')
space++;
else if(c & gt;= ' 0 ' & amp& ampc & lt='9')
digit++;
其他
其他++;
}
printf(" all in all:char = % d space = % d digit = % d others = % d \ n ",字母,
空格、數字、其他);
}
程序11
題目:求s=a+aa+aaa+aaaa+aa的值...A,其中A是壹個數。比如2+22+222+2222+22222(此時* * *有五個數要加),幾個數的相加由鍵盤控制。
1.程序分析:關鍵是計算每壹項的價值。
2.程序源代碼:
主()
{
int a,n,count = 1;
long int sn=0,TN = 0;
printf("請輸入a和n \ n ");
scanf("%d,%d ",& amp壹,& ampn);
printf("a=%d,n=%d\n ",a,n);
while(count & lt;=n)
{
TN = TN+a;
sn = sn+TN;
a = a * 10;
++計數;
}
printf("a+aa+...=%ld\n ",序列號);
}
程序12
題目:如果壹個數恰好等於它的因子之和,則稱為“完全數”。比如6 = 1+2+3。程序尋找1000內的所有完全數。
1.方案分析:請參考方案8。
2.程序源代碼:
主()
{
靜態int k[10];
int i,j,n,s;
for(j = 2;j & lt1000;j++)
{
n =-1;
s = j;
for(I = 1;我& ltj;i++)
{
如果((j%i)==0)
{ n++;
s = s-I;
k[n]= I;
}
}
如果(s==0)
{
printf("%d是壹個萬樹",j);
for(I = 0;我& ltn;i++)
printf("%d ",k);
printf("%d\n ",k[n]);
}
}
}
程序13
題目:壹個球從100米的高度自由落體,每次落地後反彈回原來高度的壹半;再摔壹次,問第10次落地時* * *過了多少米。10的反彈有多高?
1.程序分析:參見下面的註釋。
2.程序源代碼:
主()
{
float sn=100.0,HN = sn/2;
int n;
for(n = 2;n & lt=10;n++)
{
sn = sn+2 * HN;/*第n次落地時* * *通過的米數*/
HN = HN/2;/*第n次反彈的高度*/
}
printf("道路合計為%f\n ",sn);
printf("第十個是%f米\n ",HN);
}
程序14
題目:猴子吃桃子:第壹天,猴子摘了幾個桃子,馬上吃了壹半,還不過癮。他又吃了壹個。第二天早上,他吃了壹半剩下的桃子和另壹個。之後每天早上吃前壹天剩下的半個壹個。10早上,再想吃的時候,看到只剩下壹個桃子。問妳第壹天摘了多少。
1.程序分析:采用逆向思維的方法,由後向前推斷。
2.程序源代碼:
主()
{
int day,x1,x2;
日= 9;
x2 = 1;
while(day & gt;0)
{ x 1 =(x2+1)* 2;/*第壹天的桃子數是第二天桃子數的兩倍加上1 */
x2 = x 1;
日-;
}
printf("合計為%d\n ",x 1);
}
程序15
題目:沙灘上有壹串桃子,五只猴子將分享它們。第壹只猴子把這堆桃子分成五份,還有壹份。猴子把多出來的壹個扔到海裏,拿了壹個。第二只猴子把剩下的桃子平均分成五份,還有壹份。它還把多出來的那個扔進了海裏,拿走了壹部分。第三只、第四只和第五只猴子也這樣問,沙灘上有多少桃子?
1.程序分析:
2.程序源代碼:
主()
{int i,m,j,k,count
for(I = 4;我& lt10000;i+=4)
{ count = 0;
m = I;
for(k = 0;k & lt5;k++)
{
j = I/4 * 5+1;
I = j;
if(j%4==0)
count++;
其他
打破;
}
I = m;
if(count==4)
{printf("%d\n ",j);
打破;}
}
}
程序16
題目:兩支乒乓球隊比賽,每隊三名隊員。A隊由A、B、C三個人組成,B隊由x、Y、z、Y、z三個人組成,比賽名單已經抽簽決定。有人問球員關於比賽的名單。a說他不會跟X比,C說他不會跟X和z比,請做個程序找出三個隊的名字。
1.程序分析:判斷素數的方法:用壹個數除2到sqrt(這個數),如果能整除,
意味著這個數不是質數,而是質數。
2.程序源代碼:
主()
{
char i,j,k;/*i是A的對手,J是B的對手,K是C的對手*/
for(I = ' x ');我& lt= ' zi++)
for(j = ' x ');j & lt= ' zj++)
{
如果(我!=j)
for(k = ' x ');k & lt= ' zk++)
{如果(我!= k & amp& ampj!=k)
{如果(我!= ' x ' & amp& ampk!= ' x ' & amp& ampk!='z ')
printf("order是a - %c\tb - %c\tc - %c\n ",I,j,k);
}
}
}
}
程序17
標題:打印出下列圖案。
*
***
*****
*******
*****
***
*
1.程序分析:先把圖形分成兩部分,前四行是壹條規則,後三行是壹條規則。使用double for循環,第壹層控制行,第二層控制列。
2.程序源代碼:
主()
{
int i,j,k;
for(I = 0;我& lt=3;i++)
{
for(j = 0;j & lt= 2-I;j++)
printf(" ");
for(k = 0;k & lt= 2 * I;k++)
printf(" * ");
printf(" \ n ");
}
for(I = 0;我& lt=2;i++)
{
for(j = 0;j & lt= I;j++)
printf(" ");
for(k = 0;k & lt= 4-2 * I;k++)
printf(" * ");
printf(" \ n ");
}
}
程序18
題目:有壹個分數序列:2/1,3/2,5/3,8/5,13/8,21/13...找出這個序列中前20項的總和。
1.程序分析:請掌握分子分母的變化規律。
2.程序源代碼:
主()
{
int n,t,number = 20
浮點數a=2,b=1,s = 0;
for(n = 1;n & lt=數字;n++)
{
s = s+a/b;
t = a;a = a+b;b = t;/*這部分是程序的關鍵。請猜猜T */的功能
}
printf("sum是%9.6f\n ",s);
}
計劃19
題目:找1+2!+3!+...+20!總和
1.程序分析:這個程序只是把累加變成了乘法。
2.程序源代碼:
主()
{
浮點數n,s=0,t = 1;
for(n = 1;n & lt=20;n++)
{
t * = n;
s+= t;
}
printf("1+2!+3!...+20!=%e\n ",s);
}