吴渴楨 160809206

·《C语言程序设计》实验报告

学  号

 

姓  名

 

专业、班

计科16-2班

学    期

2016-2017 第1学期

指导教师

黄俊莲 吉吉老师

实验地点

C05

机 器 号

 

时    间

2016 10 13 日    6 周 周四  1、2

截至日期

2016.10.13 11:50

实验任务清单

  1. 实验3-1 分别使用while循环、do while循环、for循环求(即求1+2+3+ ……+100)
  2. 实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入。
  3. 实验3-3 求。
  4. 实验3-4输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
  5. 5.        实验3-5输入两个正整数m和n,求其最大公约数和最小公倍数。
  6. 6.        实验3-6输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33

教师评语

 

成绩

 

             

实验3  循环结构程序设计

 

 

实验3-1 分别使用while循环、do while循环、for循环求(即求1+2+3+ ……+100)。

参考:

 

源码:

#include <stdio.h>

int main(){

       int i,sum=0;

       i=1;

       while(i<=100){

              sum +=i;

              i++;

       }

 printf("sum=%d",sum);

 

 

i=1;

sum=0;

do{

       sum+=1;

       i++;

}while(i<=100);

printf("sum=%d",sum);

 

sum=0;

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

       sum +=i;

 

 

printf("sum=%d",sum);

 

 return 0;

 }

运行结果抓图

 

 


实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入。

提示:

  1. 依照实验3-1求n!,其中n!=1*2*3……*n

源码

#include <stdio.h>

int main(){

       int i,n,sum=1;

       printf("输入一个数");

       scanf("%d",&n);

       i=n;

       while(i>=1){

           sum=sum*i;

              i--;

       }

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

              return 0;

      

}

 

#include <stdio.h>

int main(){

       int i,n,sum=1;

       printf("输入一个数");

       scanf("%d",&n);

 

       i=n;

       do{

              sum=sum*i;

              i--;

       }while(i>=1);

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

              return 0;

      

}

#include <stdio.h>

int main(){

       int i,n,sum=1;

       printf("输入一个数");

       scanf("%d",&n);

 

 

        i=n;

        for(i=n;i>=1;i--)

        sum=sum*i;

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

      

      

      

       return 0;

      

}

 

运行结果抓图:

 

 

 

 

实验3-3 求。

程序源码

 

#include <stdio.h>

int main(){

              int k;

              float sum=0;

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

sum += k;

 

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

sum=sum+k*k;

 

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

sum=sum+1.0/k;

 

 

 printf("和为:%.2f",sum);

 return 0;

 }

 

运行结果抓图

 

 

 

 

实验3-4输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。

实验提示:

 

程序源码

#include <stdio.h>

int main(){

       char c;

        int zm=0,sz=0,kg=0,qt=0;

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

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

       zm++;

       else if(c==' ')

       kg++;

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

       sz++;

       else

       qt++

 

运行结果抓图

 

 

实验3-5输入两个正整数m和n,求其最大公约数和最小公倍数。

程序源码

#include<stdio.h>

 

int main(){

       int m,n,t,i,l;

printf("输入俩整数");

scanf("%d%d",&m,&n);

 if(n>m){

      t=m;

      m=n;

      n=t;

 }

 for(i=n;i>=1;i--)

      if(m%i==0&&n%i==0)

      break;

      printf("m=%d n=%d",m,n);

      if(i=!0)

        printf("最大公约数为%d\n",i);

        l=(m+n)/i;

        printf("最大公倍数为%d",l) ;

        return 0;

}

 

运行结果抓图

 

 

 

 

实验3-6 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33

程序源码

#include<stdio.h>

 

int main()

 

{

 

 int i,a,b,c;

 

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

 

 {

 

  a=i/100;   

 

  b=i/10%10; 

 

  c=i%10;    

 

  if(i==a*a*a+b*b*b+c*c*c)

 

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

 

 }

 

 getchar();

 return 0;

 

}

 

运行结果抓图

 

 

 

 

实验心得

   在使用循环结构的能力上提升了一个档次 逻辑思维很重要

 

posted @ 2016-10-13 11:21  160809206吴渴桢  阅读(172)  评论(3编辑  收藏  举报