安 徽 工 程 大 学
          高级语言程序设计  实 验 报 告
班级        姓名  同组者    /   成绩               
                    日期        指导教师         
                                                                               
实验名称              综合运用3种基本结构进行程序设计
一、实验目的
1.熟练运用“数据类型与表达式 ”相关内容,选择合适的数据结构定义问题需要的变量。
2.熟练使用scanf函数和printf函数,进行数据的输入与输出。
3.进一步掌握顺序、选择、循环结构程序设计的方法与技巧。
4.综合运用3种基本结构进行程序设计。
二、实验内容
1.百马百担。100匹马,共驮100担,大马驮3担,中马驮2担,2个小马驮1担,问大、中、小马各多少
2.输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
3.打印输出“水仙花数”。“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
4.讲一个正整数分解成每个质因数的乘积。如输入90,打印90=2*3*3*5.
5.利用循环语句编写程序实现以下功能:对一个正整数,将各位数字反序后形成一个新的整数输出。
6.一个素数加上1000以后是37的倍数,求满足这个条件的最小素数。
7.1000以内的所有“完数”。一个数如果恰好等于它的因子之和,这个数就称为“完数”,如6就是一个完数,因为6=1+2+3。
8.从键盘输入一串数字字符(该字符串至多包含一个点号'.'),将其转换成对应的实数。说明:点号前有0~9位数字字符,点号后有0~6位数字字符,但是点号前后不能同时没有数字字符。例如输入“”或“”,则输出实数;输入“.8”、“”或“”,则输出实数;输入字符串“36”或“”,则输出实数.
9.两个羽毛球队进行两两单打比赛(每名选手只能上场1次),每队3名选手。甲队为A、B、C三人,乙队为X、Y、Z三人,已知A不和X对抗,C不和X、Z对抗。
10.*思考题
11.已知
12.  VINGT
13.  CINQ
14.+  CINQ
15.TRENTE
16.试编写程序用尽可能少的时间求解各个字母代表的数字。
17.提示:题目要求所用时间尽可能少,那么下面这种方法很显然是不可行的:
18.for (V=1;V<=9;V++)
19.  for(I=0;I<=9; I++)
20.  …
21.    for (E=0;E<=9; E++)
22.{
23...
24.}
25.可以通过出某个字母的范围,减少循环次数来节约运算时间。
三、算法流程图或实验步骤(可根据需要增删、修改)
1.算法流程图
#include <>
void main()
{
    int i,j,k;
    for(i=0;i<=33;i++)
      for(j=0;j<=50;j++)
      {
          k=100-i-j;
          if(3*i+2*j+k/==100)
            printf(“Da=%d,Zhong=%d,Xiao=%d\n”,i,j,k);
      }
}
2.算法流程图
#include <>
void main()
{
  char c;
  int letter=0,space=0,digtal=0,other=0;
  while((c=getchar())!=‘\n’)
      {
            if((c>=‘A’&&c<=‘Z’)||(c>=‘a’&&c<=‘z’))
                letter++;
            else if(c==‘ ‘)
                      space++;
                else if(c>=‘0’&&c<=‘9’)
                        digtal++;
printf函数和scanf函数的格式说明都使用                    else
                          other++;