程序设计

本文介绍了如何使用C++编程将百分制成绩转换为对应的字母等级,如A、B、C等。程序通过判断输入成绩所在的范围,输出相应等级,对于超出范围的成绩则提示错误信息。此外,还分享了程序设计的一些思考和优化点,如使用if语句判断、考虑边界条件等。
摘要由CSDN通过智能技术生成

课程设计

一:

题意:输入一个百分制成绩,将其转成字母等级。

解题思路:定义一个数组表示要输入的成绩,判断每个成绩在哪个字母对应的成绩范围内将对应字母输出,若不在这些范围内输出"Score is error!"。

细节处理:数组在主函数外面定义,输出字母的大小写格式,注意小于零的情况。

原码:

#include<iostream>

using namespace std;

int n[102];

int main()

{

 int i=0,j,n[i],sum=0;

 while(cin>>n[i])

 {

  i++;

  sum++;

 }

 for(j=0;j<sum;j++)

 {

  if(n[j]>=90&&n[j]<=100) cout<<"A"<<endl;

 

 

  if(n[j]>=80&&n[j]<=89) cout<<"B"<<endl;

  if(n[j]>=70&&n[j]<=79) cout<<"C"<<endl;

     if(n[j]>=60&&n[j]<=69) cout<<"D"<<endl;

  if(n[j]>=0&&n[j]<=59) cout<<"E"<<endl;

     if(n[j]>100||n[j]<0) cout<<"Score is error!"<<endl;

 }

 return 0;

}

总结:if 判断表达式都是赋值表达式,最后一个i也可以改为else,if语句一旦找到为真的条件,就执行与它关联的语句如果所有的条件都不为真,则执行最后的else语句。

二:

题意:在输入的m和n范围内找出水仙花数(比如:153=1^3+5^3+3^3)。

解题思路:输入m和n,定义一个数组,依次循环求出m,n之间的数的个位,十位,百位,并判断个位,十位,百位三次方的和是否等于其本身,若等于依次将这个数的值赋值给数组,

循环输出这个数组,若区间内没有水仙花数,则输出"no"。

细节处理:输出的数字后面还要有一个空格,但最后一个数后面不可有空格,在循环前给变量赋值,以免变量在循环中改变。

原码:

#include<iostream>

using namespace std;

int m[1005],n[1005],a[1000];

int main()

{

    int i,j,o,x,y,z,p=0;

    i=0;

    while(cin>>m[i]>>n[i])

    i++;

    o=i;

    for(i=0;i<o;i++)

    {

        p=0;

        for(j=m[i];j<=n[i];j++)

        {

            y=j%100;

            x=j/100;

            y=y/10;

            z=j%10;

            if(j==x*x*x+y*y*y+z*z*z) 

            {

                a[p]=j;

                p++;

            }

        }

        if(p==0) cout<<"no";

        for(int g=0;g<p;g++)

        {

            if(p!=0&&g!=p-1) cout<<a[g]<<" ";

            if(p!=0&&g==p-1) cout<<a[g];

            a[g]=0;

        }

        cout<<endl;

    }

}

总结:输出格式,最后一个数后面没有空格,C语言中的“ == ” 对应着数学中的等于号,而C语言中的“ = ”表示赋值的意思。

三:

题意:给你n个整数,求他们中所有奇数的乘积。

解题思路:定义一个数组依次输入这n个数,并判断是否为奇数,若是,则依次相乘,输出这个乘积。

细节处理:奇数判断从2到比这个数小一的数都不能除尽,m=m*a[k][l]这里的是1不是0,并在循环前赋初值。

原码:

#include<iostream>

using namespace std;

int n[100],a[100][100];

int main()

{

 int i=0,j=0,m,x=0,k,l;

 while(cin>>n[i])

 {

  for(j=0;j<n[i];j++)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值