C语言实验报告(四)

C程序设计实验报告

姓名:杨静  实验地点:家  实验时间:2020.04.10

实验项目

1、用for语句实现循环

2、用while循环语句实现循环

3、用do-while语句实现循环

4、用while语句和for语句配合实现循环

5、用for语句嵌套实现循环

一、实验目的与要求

1.熟练地掌握while,do_while及for语句实现循环的方法。

2.了解3种循环语句的区别和转换、各自的适应性、循环嵌套的使用。

3.掌握如何在循环语句种使用break,continue语句,改变程序流程。

4.掌握在程序设计种用循环的方法实现各种算法。

二、实验内容

1、用for语句实现循环

(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++)
    {
     fac=1.0;
        for(j=1;j<=2*i-1;j++)
        {
         fac=fac*j;
  }
        sum=sum+fac*sign;
        sign=-sign;
    }
    printf("sun=%.0f\n",sum);
}

(3)问题分析:n为键盘输入数字,i控制总的循环次数,j控制2n-1的结果,fac和sum控制阶乘运算输出结果,sign控制结果的正负。没注意到符号是负号,看了流程图才开始思考,比较难以理解。

(4)流程图:

2、用while循环语句实现循环

(1)问题简单描述:求所有的水仙花数(水仙花数是一个3位数的自然数,该数各位数的立方和等于该数本身,如153为水仙花数1*1+5*5+3*3=153)

(2)实验代码:

#include<stdio.h>
main()
{
 int x,y,z;
 int k=100;
 while(100<=k&&k<=999)
 {x=k/100;
 y=(k/10)%10;
 z=k%10;
 if(k==x*x*x+y*y*y+z*z*z)
    printf("%d\n", k);
    k++;
 }
}

(3)问题分析:确定3位数的条件,注意用c语言逻辑里判断的写法,这题是几题中最简单的。

(4)流程图:

3、用while语句和for语句配合实现循环

(1)问题简单描述:输入4个字符,并把其转换为4位十进制整数后显示出来。

(2)实验代码:

#include<stdio.h>

main()

{
    char c;
    int k,data;
    data=0;
    for(k=0;k<4;k++)
    {
        while(1)
        {
            c=getchar();
            if(c>=‘0‘ && c<=‘9‘)
               break;
        }
     if(k==0) data+=(c-‘0‘)*1000;
     if(k==1) data+=(c-‘0‘)*100;
     if(k==2) data+=(c-‘0‘)*10;
     if(k==3) data+=(c-‘0‘)*1;
    }
    printf("Data=%d",data);
}

(3)问题分析:用for循环输入字符,if语句进行判断,跳出循环后进行转换,转换为十进制整数,形成4位数。

(4)流程图:

4、用for语句嵌套实现循环

A

(1)问题简单描述:有100匹马。要驮100担货物,其中,1匹大马可以驮3担,1匹中马可以驮2担,两匹小马可以驮1担,请问,大马、中马和小马可以有多少种组合。

(2)实验代码:

#include<stdio.h>
main()
{
 int 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)问题分析:运用数学思维,找到大中小马之间的关系,先定义大马和中马的变量,再排除小马,通过if判断语句判断,注意逻辑写法。

B

(1)问题简单描述:编写程序,求一正整数等差数列的前6项的和,该数列前4项之和是26,前4项之积是880。

(2)实验代码:

#include<stdio.h>

main()
{
 int a,b,c,d,i,sum=0;
 for(a=1;a<=26;a++)
 for(d=1;d<=26;d++)
 {
  b=4*a+6*d;
  c=a*(a+d)*(a+2*d)*(a+3*d);
  if((b==26)&&(c==880))
        {
         printf("数列的初值为a=%d,差值为d=%d\n",a,d);
         printf("\n数列前6项的值:");
   for(i=0;i<6;i++)
   {
    printf("%d ",a+i*d);
    sum=sum+(a+i*d);
   }
   printf("\n");
  }
       
 }
 printf("\n数列的前6项和:%d\n",sum);
}

(3)问题分析:根据数学公式写出满足条件,这题比较难以理解,我看了很久不太明白,要求出首项a与差值d才可求出前6项,最终得到6项的和。

C

(1)问题简单描述:有30个学生一起买小吃,共花钱50元,其中,每个大学生花3元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数共有多少种不同的解(去掉某类学生数为0的解)。

(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;
              }
  }

}
 printf("共有%d种不同的组合。\n",sum);
}

(3)问题分析:也是一道分类题,感觉和马的那题有点像,比较容易理解,做起来很快。

5.九九乘法表

实验代码:

#include <stdio.h>

int main()
{
    int i,j;
    for(i=1;i<=9;i++)
 {
        for(j=1;j<=9;j++)
            printf("%d*%d=%2d\t", i, j, i*j);
        printf("\n");
    }
    return 0;
}

问题分析:参考书中的各种三角形。

原文地址:https://www.cnblogs.com/Yee123/p/12682842.html

时间: 2024-07-30 02:39:08

C语言实验报告(四)的相关文章

C语言实验报告四

C程序设计实验报告 实验项目: 5.3.1-2求数列的前n项和:5.3.2水仙花数:5.3.4十进制转换:5.3.5-1百马百担问题:5.3.5-2求等差数列:5.3.5-3食品分配问题:九九乘法表. 姓名:熊晓东    实验地点:家   实验时间:2020.04.12 一.实验目的与要求 1.熟练地掌握while,do-while及for语句实现循环的方法.2.了解3种循环语句的区别和转换,各自的适应性,循环嵌套的作用.3.掌握如何在循环语句中使用break,continue语句,改变程序流程

C语言实验报告(三)

C语言实验报告(三) 实验项目: 4.3.1:if语句的应用 4.3.2:switch-case的应用 4.3.3:switch-case嵌套if语句的应用 4.3.4:switch-case结构嵌套的应用 4.3.5:分析程序 项目实训:计算器的实现 姓名:徐志平 实验地点:家  实验时间:2020.3.28 一.实验目的与要求 1.掌握C语言逻辑值的表示方法(0代表“假”,1代表“真”) 2.学会正确地使用关系表达式和逻辑表达式 3.掌握各种形式的if语句语法和使用方法.if语句中if和el

20145123《实验报告四》

Java实验报告四:Android开发基础 实验要求: 1.安装Android Studio 2.运行安卓AVD模拟器 3.使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 实验过程 (一)SDK的安装 1. 2. 3.

操作系统实验报告四

操作系统实验4 题目1:编写页面内存的LRU替换算法 在实验3基础上考虑,如果当前分配的内存或保存页面的数据项已经被用完,这时再有新的网页请求,需要对已在内存中的网页数据进行替换,本实验内容需要使用LRU算法来对内存中的网页数据进行替换 题目2:编写页面内存的LFU替换算法 实现LFU(最少访问频率的页面替换)算法来管理内存页面 实验报告要求: 实验报告封面如下页所示. 按照题目要求,完成相关实验题目. 2.1报告中要包含完成此题目所查阅的一些关键技术材料.例如内存结构的设计.分配管理.回收方法

实验报告四

实验报告四 学   号201421450035   中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 王雪洁 年级 2014级 区队 5 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木

C语言程序设计实验报告四

C程序设计实验报告 姓 名:赖瑾 实验地点:家 实验时间:2020年4月9日 实验项目:5.3.1练习2 求数列的前n项和 5.3.2练习2 求水仙花数 5.3.4 十进制转换 5.3.5练习1 百马百担问题 5.3.5练习2 求等差数列 5.3.5练习3 食品分配问题 九九乘法表的实现 一.实验目的与要求 1.熟练地掌握while,do while及for语句实现循环的方法. 2.了解3种循环语句的区别和转换.各自的适应性.循环嵌套的使用. 3.掌握如何在循环语句种使用break,contin

实验报告 四(未完待续)

中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 宋欣雨 年级 2015 区队 二 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范

实验报告 四

中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 胥天浩 年级 2015 区队 5 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范

网络对抗技术 实验报告四

网络对抗技术 实验报告   实验四 恶意代码技术     学生姓名 李飞扬 年级 2014级 区队 二区队 指导教师 高见     信息技术与网络安全学院 2016年11月7日   实验任务总纲 2016-2017 学年 第 一 学期 一.实验目的 1.通过对木马的练习,使读者理解和掌握木马传播和运行的机制:通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范意识. 2.了解并熟悉常用的网络攻击工具,木马的基本功能: 3.达到巩固课程知识和实际应用的目的.