课程设计作业

本文展示了五个C++编程题目,涉及水仙花数、素数判定、偶数求和、母牛数量计算及绝对值排序。每个题目包含问题描述、解题思路、代码实现和细节处理。通过这些实例,作者强调了编程中的细节处理和逻辑思维的重要性,如循环、条件判断、数组操作和数值计算。此外,作者还分享了编程学习过程中的感悟,指出编程不仅需要数学知识,还要求对细节的严谨把控。
摘要由CSDN通过智能技术生成

.水仙花数  (题目来源:SDAU课程设计一Problem B

  1. 题意: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如153=1^3+5^3+3^3,要求输出某两个数范围内的水仙花数。
  2. 解决思路:对给定区间内每个数进行处理,判断是否为水仙花数,并用将水仙花数用数组储存,再依次输出。若无水仙花数,输出no。
  3. 细节处理:处理多组数据;输出最后一个数后面不能有空格,故最后一个数要单独输出;
  4. 源代码
    #include<iostream>
    #include<cstdio>
    using namespace std;
    int p[1001];//数组要全局定义
    int main(){
        int b=0,c=0,d=0,m,n,s=0;
        while(cin>>m>>n){
            s=0;
            for(int a=m;a<=n;a++){
                b=a/100;//百位
                c=a/10%10;//十位
                d=a%10;//个位
                if(a==b*b*b+c*c*c+d*d*d)p[++s]=a;
            }
            if(s==0)cout<<"no"<<endl;
            else
            for(int i=1;i<=s;i++){
                if (i==s)cout<<p[i]<<endl;
                else cout<<p[i]<<" ";//重点注意
            }
        }
        return 0;
    }
    二.素数判定(题目来源:SDAU课程设计一Problem D)
  1. 题意:表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。
  2. 解题思路:当x=0,y=0时,表示输入结束,该行不做处理;数组储存表达式的值,后判断该值是否为素数,根据要求相应输出,换行。
  3. 细节处理:全局定义数组;理清各个循环范围。
  4. 源代码
    #include <stdio.h>
    int a[11000];//全局定义数组
    int main(){
    int b,c,e,i,m,n,j;
    while(scanf("%d%d",&m,&n)!=-1)
    {
    c=0;
    if(m==0&&n==0) return 0;
    else{
        j=0;
        for(i=m;i<=n;i++)
            {
                j++;
                a[j]=i*i+i+41;
            }
        for(i=1;i<=j;i++)
        {for(b=2;b*b<=a[i];b++)
               { if(a[i]%b==0) c++;}}//判断素数
    if(c==0) printf("OK\n");
    if(c!=0) printf("Sorry\n");
    }
    }
    return 0;
    }
    三.偶数求和(题目来源:SDAU课程设计一Problem F)
    1. 题意:长度为n(n<=100)的从2开始的递增有序偶数数列,要求按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值,编程输出该平均值序列。
    2. 解题思路:若n能整除m,则求n/m个平均值,先储存后输出,输出最后一个的后面没有空格,若不能,则输出前n/m个平均值,再输出最后数的平均值,不加空格。
    3. 细节处理:注意空格的处理,输出最后一个的后面没有空格;while循环的内部注意变量的初始化。
    4. 源代码
      #include<iostream>
      #include<cstdio>
      using namespace std;
      int a[110];
      int main()
      {
          for(int i=1;i<=100;i++)
          a[i]=i*2;
          int n,m;
          while(cin>>n>>m)//while循环
          {
                  int sum=0;//变量初始化
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值