• 作业4


    《C语言程序设计》实验报告
    
    学  号
    
    160809223
    
    姓  名
    
    姜文奇
    
    专业、班
    
    计科16-2班
    
    学    期
    
    2016-2017 第1学期
    
    指导教师
    
    黄俊莲 吉吉老师
    
    实验地点
    
    C05
    
    机 器 号
    
     
    
    时    间
    
    2016年 10136 周 周四  12 节
    
    截至日期
    
    2016.10.13 1150
    
    实验任务清单
    
    实验3-1 分别使用while循环、do while循环、for循环求(即求1+2+3+ ……+100)
    实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入。
    实验3-3 求。
    实验3-4输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
    实验3-5输入两个正整数m和n,求其最大公约数和最小公倍数。
    实验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;
    
           /*for(i=1;i<=100;i=i+1)
    
           {
    
                  sum=sum+i;
    
           }
    
           i=1;sum=0;*/
    
           /*while(i<=100)
    
           {
    
            i=i+1;sum=sum+i;
    
           }*/
    
           i=1;sum=0;
    
           do{
    
                  sum=sum+i;
    
                  i++;
    
           }while(i<=100);
    
           printf("sum=%d
    ",sum);
    
           return 0;
    
    }
    
    运行结果抓图
    
     
    
     
    
     
    
    实验3-2分别使用while循环、do while循环、for循环求n!,其中n由键盘输入。
    
    提示:
    
    依照实验3-1求n!,其中n!=1*2*3……*n
    源码
    
    #include<stdio.h>
    
    int main(){
    
           //whlie循环求n!=1*2*...*n
    
           int i,n,jiec=1;
    
           printf("请输入一个整数:");
    
           scanf("%d",&n) ;
    
           i=1;
    
           while(i<=n){
    
                  jiec=jiec*i;
    
                  i++;
    
                 
    
           }
    
           printf("%d=%d
    ",jiec);
    
           return 0;
    
    }
    
     
    
     
    
    运行结果抓图:
    
     
    
     
    
     
    
     
    
    实验3-3 求。
    
    程序源码
    
    #include<stdio.h>
    
    int main(){
    
           //使用for循环完成1+2+3+...+100
    
        int k;float sum=0;
    
           for(k=1;k<=100;k++)
    
                  sum+=k;
    
           printf("sum=%f
    ",sum);
    
           for(k=1;k<=50;k++)
    
                  sum+=k*k;
    
                  printf("sum=%f
    ",sum);
    
           for(k=1;k<=10;k++)
    
                  sum+=1.0/k;
    
                  printf("sum=%f
    ",sum);
    
           return 0;
    
    }
    
     
    
    运行结果抓图
    
     
    
     
    
     
    
     
    
    实验3-4输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
    
    实验提示:
    
     
    
    程序源码
    
    #include<stdio.h>
    
    int main(){
    
           char c;
    
           int zm=0,sz=0,kg=0,qt=0;
    
           while((c=getchar())!='
    '){
    
                  if(c>='a'&&c<='z'||c>'A'&&c<='Z')
    
                         zm++;
    
                  else if(c==' ')
    
                         kg++;
    
                  else if(c>='0'&&c<='100')
    
                         sz++;
    
                  else
    
                         qt++;
    
           }
    
     
    
           printf("字母个数:%d
    ",zm);
    
           printf("空格个数:%d
    ",kg);
    
           printf("数字个数:%d
    ",sz);
    
           printf("其他个数:%d
    ",qt);
    
           return 0;
    
          
    
    }
    
    运行结果抓图
    
     
    
     
    
    实验3-5输入两个正整数m和n,求其最大公约数和最小公倍数。
    
    程序源码
    
    #include<stdio.h>
    
    #include<math.h>
    
    int main(){
    
           //m,n的最大公约数 能够同时整除m和n的最大数
    
           int m,n,t,i,gys,gbs;
    
           printf("请输入两个整数:") ;
    
           scanf("%d%d",&m,&n);
    
           //m的位置放大的数
    
           if(n>m){
    
                  t=m;
    
                  m=n;
    
                  n=t;
    
           }
    
           for(i=n;i>=1;i--)
    
                  if(m%i==0&&n%i==0)
    
                         break;
    
           if(i!=0){
    
                  gys  ;
    
                  printf("最大公约数为;%d
    ",gys);
    
                  }
    
                  gbs=m*n/gys;
    
                  printf("最小公倍数为:%d
    ",gbs);
    
                  return 0;
    
    }
    
     
    
    运行结果抓图
    
     
    
     
    
     
    
     
    
    实验3-6 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。
    
    程序源码
    
    #include<stdio.h>
    
    int main(){
    
           //水仙花数
    
            int n,k1,k2,k3;//k1个位,k2十位,k3百位
    
            for(k1=0;k1<9;k1++)
    
            for(k2=0;k2<9;k2++)
    
            for(k3=0;k3<9;k3++){
    
                 if(k3*100+k2*10+k1==k1*k1*k1+k2*k2*k2+k3*k3*k3)
    
                 printf("%d
    ",k3*100+k2*10+k1);}
    
                 return 0;
    
          }
    
    #include<stdio.h>
    
    int main(){
    
           //水仙花数
    
            int n,k1,k2,k3;//k1个位,k2十位,k3百位
    
            for(n=100;n<=999;n++){
    
                 k1=n%10;
    
                 k2=n/10%10;
    
                 k3=n/100;
    
                 if(n==k1*k1*k1+k2*k2*k2+k3*k3*k3)
    
                        printf("%d
    ",n);
    
                  return 0;
    
          }
    
    }
    
     
    
    运行结果抓图
    
     
    
     
    
     
    
    实验心得
    
    虽然这次试验大部分都是老师带着我们做的,但是我也在其中收获许多的知识,比如求最大公约数和最小公倍数,复习了for while和do while循环的用法,统计一些数字,字符等,还有水仙花数,C语言其实并不太难,只不过我没有好好的去记。
    
     
  • 相关阅读:
    [BZOJ2763] [JLOI2011] 飞行路线
    [BZOJ4033] [HAOI2015] 树上染色
    [BZOJ2565] 最长双回文串
    [luogu5048] [Ynoi2019模拟赛] Yuno loves sqrt technology III
    又犯了低级错误了
    Win10系统无法使用小米手机的远程管理功能
    DevExpress破解和消除弹出框问题
    重写导致的问题
    EXCEL统计不重复值的数量
    C#中Button.DialogResult属性
  • 原文地址:https://www.cnblogs.com/Cynicisty/p/5955807.html
Copyright © 2020-2023  润新知