课程设计
一:
题意:输入一个百分制成绩,将其转成字母等级。
解题思路:定义一个数组表示要输入的成绩,判断每个成绩在哪个字母对应的成绩范围内将对应字母输出,若不在这些范围内输出"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++)