1.
实验要求:
有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。
实验代码:
#include<stdio.h> #include<stdlib.h> int main() { int x,y,z; for(x=1000;x<=9999;x++) { y=0; z=x; while(z>0) { y=10*y+z%10; z=z/10; } if(x==4*y) { printf("%d",x); } } return 0; }
实验截图:
2.
实验要求:
输入任意一个多位的数字,求各位数字之和。如果在【1,12】之内,则输出与和数字对应的月份的英文名称,否则输出***。
样例: 输入123, 输出 6 June
输入12345,输出 15 ***
实验代码:
#include<stdio.h> int main() { int x,m,sum=0; printf("请您输入一个多位数 "); scanf("%d",&x); while(1) { m=x%10; x=x/10; sum=sum+m; if(x==0) { break; } } switch(sum) { case 1:printf("January ");break; case 2:printf("February ");break; case 3:printf("March ");break; case 4:printf("April ");break; case 5:printf("May ");break; case 6:printf("June ");break; case 7:printf("July ");break; case 8:printf("August ");break; case 9:printf("September ");break; case 10:printf("October ");break; case 11:printf("November ");break; case 12:printf("December ");break; default:printf("*** ");break; } return 0; }
实验截图:
3.
实验要求:
给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。
输入格式:输入在一行中给出A。
输出格式:输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。
输入样例:2
输出样例:234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543
实验代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int x1,x2,x3,x4,a,b,c,i=0,sum;
printf("输入样例: ");
scanf("%d",&x1);
if(x1<=0||x1>6)
{
printf("您输入有错。
");
exit(0);
}
printf("输入样例:");
x2=x1+1;
x3=x2+1;
x4=x3+1;
for(a=x1;a<=x4;a++)
for(b=x1;b<=x4;b++)
for(c=x1;c<=x4;c++)
{
if(a!=b&&b!=c&&c!=a)
{
sum=100*a+10*b+c;
printf(" %d",sum);
i++;
if(i%6==0&&i!=0)
{
printf("
");
}
}
}
return 0;
}
实验截图:
4
实验要求:
看商品猜价格
实验代码:
#include<stdio.h> #include<time.h> #include<stdlib.h> int main() { int x,y,i; while(1) { printf("请输入您竞猜的价格 "); srand(time(NULL)); scanf("%d",&y); x=rand()%100+1; for(i=1;i<10;i++) { if(y>100||y<0) { printf("输入错误,请重新输入。(提示:此次已计入次数。) "); scanf("%d",&y); } else { if(x==y) { printf("您猜对了,商品是你的,价格就是%d元,你用了%d次。 ",x,i); break; } else if(x>y) { printf("你猜的太小了,请您再次竞猜。 "); scanf("%d",&y); } else { printf("你猜的太大了,请您再次竞猜。 "); scanf("%d",&y); } } } if(i==10&&x!=y) { printf("您的10次机会已经全部用完,价格是%d元。很遗憾您没有猜对 ",x); break; } } return 0; }
实验截图:
附加.
实验要求:
有16根火柴,可以拼出多少个形如“A+B=C”的等式,A、B、C是用火柴棍拼出的整数,且为一位数,输出该等式形式。
注意: 1. 加号与等号各自需要两根火柴棍 2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 3. 16根火柴棍必须全部用上
用火柴棍拼数字0-9的拼法如图所示:
实验代码:
# include<stdio.h> int main() { int x,y,sum,a,b,c; printf("有16根火柴,可以拼出多少个形如“A+B=C”的等式. "); for(x=0;x<=9;x++) { for(y=0;y<=9;y++) { switch(x) { case 0:a=6; break; case 1:a=2; break; case 2:a=5; break; case 3:a=5; break; case 4:a=4; break; case 5:a=5; break; case 6:a=6; break; case 7:a=3; break; case 8:a=7; break; case 9:a=6; break; } switch(y) { case 0:b=6; break; case 1:b=2; break; case 2:b=5; break; case 3:b=5; break; case 4:b=4; break; case 5:b=5; break; case 6:b=6; break; case 7:b=3; break; case 8:b=7; break; case 9:b=6; break; } sum=x+y; switch(sum) { case 0:c=6; break; case 1:c=2; break; case 2:c=5; break; case 3:c=5; break; case 4:c=4; break; case 5:c=5; break; case 6:c=6; break; case 7:c=3; break; case 8:c=7; break; case 9:c=6; break; } if(x<10&&y<10&&sum<10) { if((a+b+c)==12) { printf("%d+%d=%d ",x,y,sum); } } } } return 0; }
实验截图:
知识点总结:
1.利用循环编程菲薄那数列。
2.利用穷举法计算鸡兔同笼问题。
3.利用循环进行整数的分解,计算整数的位数以及如何利用循环将一个数逆序输出。
4.分别利用枚举法和辗转相除法计算最大公因数。
5.学习程序的调试,bug以及debug,调试的基本步骤,以及调试工具。
实验总结:
1.在循环的过程中,换行回车的位置要注意。
2.忘记了switch的其余选项利用default字符。
3.循环变量的赋值以及赋值位置。
4.“=”的优先级较低,注意运用“()”。
5.等于用“==”符号,不是“=”。
6.忘记验证实验的合法性。
7.在做实验前,最好做出程序框图