Cプログラミング実験レポート
実験項目:実験5.3.1演習2、実験5.3.2演習2、実験5.3.4、実験5.3.5演習1&演習2&演習3、九九乗算テーブル
名:ロング嘉城実験場所:自宅実験時間:2020年4月9日
1.実験の目的と要件
1. while、do_while、forステートメントの方法に習熟しており、ループを実現します
。2. 3種類のループステートメントの違いと変換、それぞれの適応性、ループの入れ子の使用を
理解します。プログラムフローを変更する
4.プログラム設計でループを使用してさまざまなアルゴリズムを実装する方法を習得する
2.実験的な内容
1.実験的な演習:実験5.3.1演習2
1問題の簡単な説明:シーケンス1、-3!、5!、-7!、...、(-1)^ n-1(2n-1)を見つけるプログラムを記述します!最初のn項目の合計。nの値はキーボードで入力します。
2実験コード:
#include<stdio.h>
main()
{
int n,i,j,sign=1;
float fac,sum;
printf("Please input value of n:");
scanf("%d",&n);
sum=0.0;
for(i=1;i<=n;i=i+1)
{
fac=1.0;
for(j=1;j<=2*i-1;j=j+1)
{
fac=fac*j;
}
fac=fac*sign;//计算第n项
sum=sum+fac;//求前n项和
sign=-sign;
}
printf("sum=%.0f\n",sum);
}
3.フローチャート:
3問題分析:このコードはforループの入れ子を多く使用しています。理解する必要があるのは、各ループの役割とループ間の関係です。
2.実験的な演習:実験5.3.2演習2
1.問題の簡単な説明:すべての水仙の数字を見つけます(水仙の数字は3桁の自然数で、数字の数字の3乗和は数字自体と同じです)
2.実験コード:
#include<stdio.h>
main()
{
int x,y,z;
int k=100;
while(k<=999)//while循环条件,水仙花数是一个三位数
{
x=k/100;
y=(k/10)%10;
z=k%10;
if(x*x*x+y*y*y+z*z*z==k)//水仙花数应当满足的条件
printf("%d\n",k);
k++;
}
}
3.フローチャート:
4.問題分析:この質問はクラスの前に説明されました。コードの入力プロセスには多くの問題はありませんでした。
3.実験演習:実験5.3.4
1.問題の簡単な説明:4文字の数値を入力して、それらを10進整数に変換します
。2。実験コード:
3.フローチャート:
4.問題分析:コードを入力するときの不注意により、forステートメントの後に「;」が追加され、実行に失敗しました。
4.実験演習:実験5.3.5演習1
1.問題の簡単な説明:100頭の馬があり、100の荷物を運ぶ必要があります。1パック3マレーシア商品をサポートすることができ、パック2は、貨物馬でサポートすることができ、ポニー2液1は、所望のマレーシアを求めて、商品を運ぶことができ、マレーシア、組み合わせの数は、ポニーができる
2、実験コード:
#include<stdio.h>
main()
{
int m,n,k;//m,n,k分别代表大马、中马和小马的匹数
int sum=0;
printf("各种驮法如下:\n");
for (m=1;m<=100;m++)
for(n=1;n<=100-m;n++)
{
k=100-m-n;
if((k%2==0)&&(3*m+2*n+0.5*k==100))
{
printf("大马%3d匹;中马%3d匹;小马%3d匹.\n",m,n,k);
sum++;
}
}
printf("共有%d种驮法.\n",sum);
}
3.フローチャート:
4.問題分析:コードを入力するときに、「== as =」として入力します
5.実験演習:実験5.3.5演習2
1.問題の簡単な説明:正の整数の算術シーケンスでは、シーケンスの最初の4項の合計は26に等しく、最初の4項の積は880に等しいことがわかっています。シーケンスの最初の6アイテムの合計。
2.実験コード:
3.フローチャート:
4.問題分析:コードの入力時にbとdの位置が間違っていたため、計算結果にエラーが発生しました
6.実験演習:実験5.3.5演習3
1.問題の簡単な説明:30人の学生が一緒にスナックを買いに行って合計50元を費やし、そのうち大学生1人が3元、中学生1人が2元、小学生1人が1元を使いました。割り当てられた人数にいくつの異なる組み合わせがありますか(特定の数の学生の組み合わせは計算されません)
2.実験コード:
#include<stdio.h>
main()
{
int x,y,z,sum;
sum=0;
for(x=1;x<30;x++)
{
for(y=1;y<30;y++)
{
z=30-x-y;
if((z!=0)&&(3*x+2*y+z==50))
{
printf("大学生%3d\t中学生%3d\t小学生%3d\n",x,y,z);
sum=sum+1;
}
else
continue;
}
}
printf("sum=%d\n",sum);
}
3.フローチャート:
4.問題分析:混乱を引き起こしやすいコードの入力プロセスで、ネストされたペアリングの各問題に注意してください。
実験3:プロジェクトのトレーニング:九九九九
1.フローチャート:
2.コード:
#include<stdio.h>
main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%-3d\t",i,j,i*j);
}
printf("\n");
}
}
第四に、実験の要約(個人的な利益と損失の分析)
この実験では、forステートメントの後に「;」が自然に追加されることがあり、実行結果にエラーが発生することがあります。また、不注意により一部の文字が誤って入力されることもあります。また、実験でわからないものも見つかりました。この問題は、クラスメートと話し合ったり、インターネットで情報を確認したりすることで解決しました。