实验总结:本次实验的问题大都是数学问题,思路比较清楚,但调试程序比较
麻烦,对printf语句不是很熟悉。
实验序号: 第 5 次实验 实验名称:循环结构程序设计 实验目的:
(1)熟练掌握用while语句、do??while语句实现循环的方法。
(2)掌握在程序中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)进一步学习调式程序。
实验内容:
第一题:
输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。 在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符个数。 代码:
①#include
char c;
int letters=0,space=0,digit=0,other=0; printf(\请输入一行字符:\\n\ while((c=getchar())!='\\n') {
if (c>='a' && c<='z' || c>='A' && c<='Z') letters++; else if (c==' ') space++;
else if (c>='0' && c<='9') digit++; else other++; }
printf(\字母数:%d\\n空格数:%d\\n数字数:%d\\n其它字符数:%d\\n\ return 0; } ②
#include
char c;
int capital=0,lowercase=0,space=0,digit=0,other=0; printf(\请输入一行字符:\\n\ while((c=getchar())!='\\n') {
if (c>='A' && c<='Z') capital++; else if(c>='a' && c<='z') lowercase++; else if (c==' ') space++;
else if (c>='0' && c<='9') digit++; else other++; }
printf(\大写:%d\\n小写:%\\n空格数:%d\\n数:%d\\n\ return 0; }
数字数:%d\\n其它字符
运行结果:①
修改后运行的结果
第二题:
输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如:153是一水仙花数,因为153=1^3+5^3+3^3. 代码:
#include
int main() {
int i,j,k,n;
printf(\ for (n=100;n<1000;n++) {
i=n/100; j=n/10-i*10; k=n;
if (n==i*i*i + j*j*j + k*k*k) printf(\ }
printf(\ return 0; }
运行结果:
结果说明:水仙花数是153,370,371,407 第三题:
猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的猴子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想在吃时,见只剩一个桃子了。求第1天共摘了多少桃子。 代码:
①#include
int day,x1,x2; day=9; x2=1;
while(day>0)
{x1=(x2+1)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/ x2=x1; day--; }
printf(\ return 0; }
②#include
int day,x1,x2;
day=9; x2=1;
while(day>0)
{x1=(x2+2)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/ x2=x1; day--; }
printf(\ return 0; }
运行结果:①
结果说明:第一天一共摘了1534个桃;
②
结果说明:第一天一共摘了2556个桃;
实验总结:程序比较容易想,思路清楚,且老师上课已经给出一些代码,所以
比较快完成这个实验。
实验序号: 第 6次实验 实验名称:数组 实验目的:
(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法。 (2)掌握字符数组和字符串函数的使用。
(3)掌握与数组有关的算法(特别是排序算法)。
实验内容:
第:一题:
用选择法对10个整数排序。10个整数用scanf函数输入。 代码:
#include
{int i,j,min,temp,a[11];
printf(\ for (i=1;i<=10;i++) {printf(\ scanf(\ }
printf(\
printf(\ for (i=1;i<=10;i++) printf(\ printf(\
for (i=1;i<=9;i++) {min=i;
for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; }
printf(\ for (i=1;i<=10;i++) printf(\ printf(\ return 0; } ??
运算结果:
第二题: