桂 林 理 工 大 学

实  验  报  告

班级 计算机类 学号3202052 姓名  实验名称实验 选择结构程序设计          日期  2020年 11月22 日

一、实验目的:

  1. 熟悉掌握while语句、do~while语句、for语句实现循环的方法
  2. 掌握在程序设计中用循环方法实现一些常用的算法
  3. 进一步学习调试程序。

二、实验环境:

    PC + Windows +Visual C++6.0  

三、实验内容:

(主要内容的文字及贴图)

例题:例5.7~5.11

习题:

1 输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符数(习题5.4)

在得到正确结果后请修改程序使之能分别统计大小写字母、空格、数字、和其他字符

方法1:(利用while循环结构)

#include <stdio.h>

int main()

{

char c;

int letter=0,space=0,others=0,number=0;

printf("Please enter character:\n");

while((c=getchar())!='\n')

{

if(c>='a'&&c<='z'||c>='A'&&c<='Z')

letter++;

else if(c==' '||c=='\t')

space++;

else if(c>='0'&&c<='9')

number++;

else others++;

}

printf("letter=%d,space=%d,number=%d,others=%d\n",letter,space,number,others);

return 0;

}

方法2:(利用for循环结构)

#include <stdio.h>

int main()

{

char c;

int letter=0,space=0,others=0,number=0;

printf("Please enter character:\n");

for(letter=0,space=0,others=0,number=0;(c=getchar())!='\n';)

{

if(c>='A'&&c<='Z'||c>='a'&&c<='z')//或一个为真就能运行,若为与英文字母需要大小写才能运行

letter++;

else if(c==' '||c=='\t')

space++;

else if(c>='0'&&c<='9')

number++;

else

others++;

}

printf("letter=%d,space=%d,number=%d,others=%d\n",letter,space,number,others);

return 0;

}

2 输出所有的“水仙花数”,题目见教材习题5.8

#include <stdio.h>

int main()

{

int b,s,g,i,sum;

for(i=100;i<1000;i++)

{

b=i/100;

s=i%100/10;

g=i%10;

sum=g*g*g+s*s*s+b*b*b;

if(i==sum)

{

printf("%d\n",sum);

}

}

return 0;

}

3 求两个数的最大公约数和最小公倍数

#include <stdio.h>

int main()

{

int a,b,r,n,m;

printf("请输入两个整数:");

scanf("%d,%d",&a,&b);

m=a,n=b;

do

{

r=a%b;

a=b;

b=r;

}

while(r!=0);//当r!=0时,继续执行循环体到0才输出数值

printf("%d和%d的最大公约数是:%d\n",m,n,a);

printf("最小公倍数是:%d",m*n/a);//两个数的乘积等于这两个数的最大公约数与最小公倍数的乘积

return 0;

}

4 习题5.16

#include <stdio.h>

int main()

{

int i,j,k,l;

for(i=1;i<=5;i++)

{

for(j=1;j<=5-i;j++)

{

printf(" ");

}

for(j=1;j<=2*i-1;j++)

{

printf("*");

}

printf("\n");

}

for(k=1;k<=4;k++)

{

for(l=1;l<=k;l++)

{

printf(" ");

}

for(l=1;l<=7-2*(k-1);l++)

{

printf("*");

}

printf("\n");

}

return 0;

}

  1. 输入一批非零的整数,以输入零表示结束,求这批数据的平均值并输出。

#include <stdio.h>

int main()

{

int num[10],i=0;

float average,sum=0;

printf("输入一批非零的整数,以输入零表示结束:\n");

while(i<10)

{

scanf("%d",&num[i]);

if(num[i]==0)

break;

sum+=num[i];

i++;

}

average=sum/i;

printf("平均数:%.2lf\n",average);

return 0;

}

6.给定N个正整数,请统计奇数和偶数各有多少个?

输入格式:

输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。

输出格式:

在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。

输入样例:

9

88 74 101 26 15 0 34 22 77

输出样例:

3 6

#include <stdio.h>

int main()

{

int a=0,b=0,n,i,num[1000];

scanf("%d",&n);

for(i=0;i<n;i++)

{

scanf("%d",&num[i]);

if(num[i]%2==0)

{

a++;

}

else

{

b++;

}

}

printf("%d %d",b,a);

return 0;

}

#include<stdio.h>//素数本身和1

int main()

{

int a,b,i,j;

int k;

scanf("%d%d",&a,&b);

for(i=a;i<=b;i++)

{

k = 0;

for(j=2;j<i;j++)

{

if(i%j==0)

k++;

}

if(k==0){

printf("%d ",i);

}

}

}

#include <stdio.h>

int main()

{

int i,n=20;

double a=2,b=1,s=0,t;

for(i=1;i<=n;i++)

{

s=s+a/b;

t=a,a=a+b,b=t;

}

printf("sum=%0.6f\n",s);

return 0;

}

7 输入一个整数n,计算n!并输出。

#include <stdio.h>

int main()

{

int n,sum=1,i;

printf("输入一个整数n\n");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

sum=sum*i;

}

printf("%d!=%d,\n",n,sum);

return 0;

}

8.二选一 (学号为单号的同学做第a题,学号为双号的同学做第b题,鼓励两题都做 J)。

a输入一个整数n(n>6),计算1!+2!+3!+……+n!并输出。

b输入一个整数n(n>6),依次输出1至n之间各个数的阶乘值,输出格式为:

1!=1

2!=2

3!=6

4!=24

5!=120

6!=720

……

a:

#include <stdio.h>

int main()

{

int i,n,factorial=1,s=0;;

printf("输入一个整数n(n>6):\n");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

factorial=factorial*i;//阶乘

s=s+factorial;

}

printf("1!+2!+3!+……+n!=%d\n",s);

return 0;

}

b:

#include <stdio.h>

int main()

{

int n,i,j,f=1;

printf("请输入一个数:");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

for(j=1;j<=i;j++)

{

f=f*j;

}

printf("%d! = %ld\n",i,f);

f=1;

}

return 0;

}

四、心得体会(150字以上)

通过本次实验,熟悉掌握while语句、do~while语句、for语句实现循环的方法,掌握在程序设计中用循环方法实现一些常用的算法,进一步学习调试程序。

桂 林 理 工 大 学实 验 报 告实验四 选择结构程序设计相关推荐

  1. 桂 林 理 工 大 学实 验 报 告实验五 数组

    桂 林 理 工 大 学 实  验  报  告 班级 计算机类20 学号32020520 姓名  实验名称实验五 数组 日期 2020年 11月28日 一.实验目的: 熟悉掌握一维数组和二维数组的定义和 ...

  2. 桂 林 理 工 大 学实 验 报 告 实验名称实验六 函数

    桂 林 理 工 大 学 实  验  报  告 班级 计算机类2 学号320205 姓名  实验名称实验六 函数 日期 2020年 12月7日 一.实验目的: 掌握定义函数.声明函数的方法. 掌握调用函 ...

  3. 桂林理工大学 计算机网络 实 验 报 告 静态路由实验

    桂 林 理 工 大 学 实  验  报  告 班级   计算机类   学号   3202052  姓名       同组实验者   无    实验名称             静态路由实验       ...

  4. c#语言程序设计上机实验,《C#语言程序设计》实 验 报 告

    <<C#语言程序设计>实 验 报 告>由会员分享,可在线阅读,更多相关<<C#语言程序设计>实 验 报 告(20页珍藏版)>请在人人文库网上搜索. 1. ...

  5. python实训报告pygame_20181218 实验四《Python程序设计》实验报告

    20181218 2019-2020-2 <Python程序设计>实验四报告 课程:<Python程序设计> 班级: 1812 姓名: 学号:20181218 实验教师:王志强 ...

  6. 南京邮电大学电工电子基础B实验四(戴维南与诺顿定理)

    戴维南与诺顿定理 一. 实验目的 1.学习几种常用的等效电源的测量方法 2.比较几种测量方法所适用的情况 3.分析各种方法的误差大小及其产生的原因 二. 主要仪器设备及软件 硬件:交流电源.电容.电感 ...

  7. 合肥工业大学宣城校区Java技术实验四 Java Web编程

    (本实验只完成了一部分,属于半成品) 一.实验目的 1.掌握Java Web服务器Tomcat的安装.配置. 2.学会简单的HTML表单设计,表单提交. 3.掌握JSP中的request对象.sess ...

  8. 实验五 循环结构程序设计 → 张玉生《C语言程序设计实训教程》双色版 配套实验书答案 (纯手打, 仅供参考)

    实验6.1 //程序功能:输入一个整数n,求1/1-2/3+3/5-4/7+5/9-6/11+--的前n项之和 #include <stdio.h>int main() {int i, n ...

  9. python开发环境搭建实训报告_20191302 实验一《Python程序设计》实验报告

    20191302 2019-2020-2 <Python程序设计>实验一报告 课程:<Python程序设计> 班级: 1913班 姓名: 董佳帅 学号:20191302 实验教 ...

最新文章

  1. 最先进的图像分类算法:FixEfficientNet-L2
  2. 什么是 Delta 文件
  3. android x86怎么引导,Android、Ubuntu、win三系统引导求教
  4. 物联网平台 源码_国内首个智慧交通物联网平台发布
  5. python第三方库安装-python的第三方库安装
  6. 小能量汇聚成大能量_清体能量棒配料解析:小种子,大能量,藜麦和青稞
  7. GIS讲堂第二课-地图切片简介以及OL中的调用
  8. 教学思路ASP.Net之服务器控件: 四、FileUpload
  9. Ehcahe spring
  10. staruml 为类的属性指定数据类型_关于python的数据类型
  11. 赛尔笔记 | 事件间因果关系方向数据调研
  12. 遇到的JAVA笔试题
  13. Chrome 进阶:用扩展武装自己
  14. canvas画布的基本教程
  15. RL Python练习
  16. 十三、注解(高琪java300集+java从入门到精通笔记)
  17. unity3D 涂涂乐使用shader实现上色效果
  18. 水逆了一整年的王源,2020年年初能靠《大主宰》翻身吗?
  19. 下拉菜单和文本框结合
  20. 周金涛生前20篇雄文精华,一文尽览

热门文章

  1. 设计算机字长为8位 采用纯整数,计算机一级B笔试真题2011年03月
  2. Bug复现辅助神器-EV录屏
  3. 基于OpenCV的细胞图像识别
  4. JVM参数-XXMatespaceSize的含义
  5. clip-path的学习和简单使用
  6. DHCP协议说明及报文分析
  7. JavaScript之赛车游戏
  8. 大整数加减乘除的实现
  9. 基于微信小程序的‘香草屋’饮料奶茶点单小程序
  10. [嵌入式]嵌入式系统概述