目錄
寫在前面
正文
第1關:C循環-求平均成績
第2關:C循環-求各位數字之積
第3關:C循環-求階乘之和
第4關:C循環-水仙花數
第5關:C循環-尋找完數
第6關:分數求和
寫在最後
寫在前面
本文代碼是我自己所作,本人水準有限,可能部分代碼看着不夠簡練,運作效率不高,但都能運作成功。另外,如果想了解更多,請訂閱專欄頭歌C語言程式與設計
正文
第1關:C循環-求平均成績
本關任務:編寫一個程式,輸入學生人數和每個人的成績,計算平均成績。
注意:當輸入的學生人數小于等于0時,輸出平均成績為0分!
輸入: 輸出:
3 90 70 80
the number of students:the scores:average=80.00
輸入: 輸出:
-1
the number of students:the scores:average=0.00
輸入: 輸出:
4 78.5 26 73.6 90.1
the number of students:the scores:average=67.0
#include<stdio.h>
int main(void)
{
/*********Begin*********/
int num,i;
float score,average,sum;
printf("the number of students:");
scanf("%d",&num);
if(num>0)
{
for(i=0;i<num;i++)
{
scanf("%f",&score);
sum+=score;
}
average=sum/num;
}
else
average=0;
printf("the scores:average=%.2f",average);
/*********End**********/
return 0;
}
第2關:C循環-求各位數字之積
本關任務:計算正整數
num
的各位上的數字之積。
例如:
- 輸入:
經過----(2*5*8*3) 輸出:
2583
240
- 輸入:
經過----(1*0*2) 輸出:
102
- 輸入:
經過----(1*3*6) 輸出:
136
18
輸入: 輸出:
120
輸入: 輸出:
314
12
輸入: 輸出:
1952
90
#include<stdio.h>
int main(void)
{
/*********Begin*********/
int num=0,t=1;
scanf("%d",&num);
while(num!=0)
{
t*=num%10;
num/=10;
}
printf("%d",t);
/*********End**********/
return 0;
}
第3關:C循環-求階乘之和
本關任務:編寫一個程式,任意輸入,求
n
S=1!+2!+...+n!
。
注意:
表示
n!
的階乘。 的階乘等于
n
,負數的階乘等于 。
1
輸入: 輸出:
10
4037913
輸入: 輸出:
1
1
輸入: 輸出:
-5
#include<stdio.h>
int main(void)
{
/*********Begin*********/
int n;
int i,j,num=1,sum=0;
scanf("%d",&n);
if(n<=0)
{
printf("0");
}
else
{
for(i=1;i<=n;i++)
{
num=1;
for(j=1;j<=i;j++)
{
num*=j;
}
sum+=num;
}
printf("%d",sum);
}
/*********End**********/
return 0;
}
第4關:C循環-水仙花數
本關任務:求出所有的水仙花數。
提示:所謂水仙花數是指一個三位數,其各位數字的立方和等于該數字本身。比如
是一個水仙花數,因為
153
153=1^3+5^3+3^3
注意:本題不需要輸入語句,由于網站限制要求一定要有輸入輸出示例,但同學們可以對輸入部分忽略不計。
輸入:
輸出:
1
153 370 371 407
#include<stdio.h>
int main(void)
{
/*********Begin*********/
int i=0,a,b,c;
for(i=100;i<1000;i++)
{
a=i/100;
b=(i-a*100)/10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
printf("%d ",i);
}
/*********End**********/
return 0;
}
第5關:C循環-尋找完數
本關任務:一個數如果恰好等于它的因子之和,這個數就稱為"完數"。 例如,的因子為
6
,而
1、2、3
,是以
6=1+2+3
是"完數"。 程式設計式找出
6
1000
之内的所有完數。
輸入:
輸出: 程式設計式找出
1000
1000
之内的所有完數,每個完數占一行。
輸入:
輸出:
1000
6
28
496
#include<stdio.h>
int main(void)
{
/*********Begin*********/
int i=0;
int j=0;
int sum=0;
int n=0;
scanf("%d",&n);
for(i=1;i<n;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
sum+=j;
}
if(sum==i)
{
printf("%d\n",i);
}
}
/*********End**********/
return 0;
}
第6關:分數求和
本關任務:編寫程式計算 1 - 1/2 + 1/3 - 1/4 + ..... +1/99 - 1/100
的值,并顯示出來(保留結果為小數點後三位)。
#include<stdio.h>
int main(void)
{
/*********Begin*********/
float sum,t,j=1.0;
int i,n=1;
for(i=0;i<100;i++)
{
t=j/n;
j=-j;
n++;
sum+=t;
}
printf("%.3f",sum);
/*********End**********/
return 0;
}
寫在最後
👍🏻點贊,你的認可是我創作的動力!
⭐收藏,你的青睐是我努力的方向!
✏️評論,你的意見是我進步的财富!