首页 > 代码库 > 作业4

作业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\n",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\n",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\n",sum);       for(k=1;k<=50;k++)              sum+=k*k;              printf("sum=%f\n",sum);       for(k=1;k<=10;k++)              sum+=1.0/k;              printf("sum=%f\n",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<=Z)                     zm++;              else if(c== )                     kg++;              else if(c>=0&&c<=100)                     sz++;              else                     qt++;       }        printf("字母个数:%d\n",zm);       printf("空格个数:%d\n",kg);       printf("数字个数:%d\n",sz);       printf("其他个数:%d\n",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\n",gys);              }              gbs=m*n/gys;              printf("最小公倍数为:%d\n",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\n",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",n);              return 0;      }} 运行结果抓图   实验心得虽然这次试验大部分都是老师带着我们做的,但是我也在其中收获许多的知识,比如求最大公约数和最小公倍数,复习了for while和do while循环的用法,统计一些数字,字符等,还有水仙花数,C语言其实并不太难,只不过我没有好好的去记。 

 

作业4