c语言课程设计论文

输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:90100为A;8089为B;7079为C;6069为D;0~59为E;
输入一个数字,判断其范围,注意输入的是多组数据,需用while来实现。
代码如下
#include
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if(n<0||n>100)
cout<<“Score is error!”<<endl;
if(0<=n&&n<=59)
cout<<“E”<<endl;
if(60<=n&&n<=69)
cout<<“D”<<endl;
if(70<=n&&n<=79)
cout<<“C”<<endl;
if(80<=n&&n<=89)
cout<<“B”<<endl;
if(90<=n&&n<=100)
cout<<“A”<<endl;
}
}

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+3^3。
现在要求输出所有在m和n范围内的水仙花数。
先将这个三位数的百位、十位、个位分离开,利用水仙花数的特点去判断是否为水仙花数。
#include
using namespace std;
int main()
{
int m,n,i,a,b,c,d=0,e;
while(cin>>m>>n)
{
e=1;
d=0;
for(i=m;i<=n;i++)
{
a=i%10;
b=i/10%10;
c=i/100%10;
if(iaaa+bbb+ccc)
{
if(e
1)
cout<<i;
else cout<<" "<<i;
e++;
}
else d++;
}
if(d==n-m+1)
cout <<“no”<<endl;
else cout<<endl;
}}

给你n个整数,求他们中所有奇数的乘积。
先判断一个数字是否为奇数,将奇数筛选,如果是奇数就用s乘以那个数,前提s为1,如果不是奇数不做处理。
#include<stdio.h>
#include
using namespace std;
int main()
{
int i,n,s,p;
while(cin>>n)
{
s=1;
for(i=0;i<n;i++)
{
cin>>p;
if(p%2==1)
s=s*p;
}
cout<<s<<endl;
}
return 0;
}

对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。
先输入两个不同的数,从小的数开始循环,将从m开始的每一个数代入公式中,再去判断该数值是否为素数,需在用另一个循环,去判断是否为素数,如果是则输出ok,否则输出sorry。
#include
#include<math.h>
using namespace std;
int main()
{
int m,n,a,b,j,i;
while(cin>>m>>n)
{
if(m0&&n0)
break;
b=0;
for(i=m;i<=n;i++)
{
a=i*i+i+41;
for(j=2;j<=sqrt(a);j++)
{
if(a%j0)
b++;
}}
if(b
0)
cout<<“OK”<<endl;
else cout<<“Sorry”<<endl;
}}

多项式的描述如下:
1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + …
现在请你求出该多项式的前n项的和。
根据题目不难看出每一项分母上的数字依次加一,可利用循环来实现,而符号可用(-1)的n次幂来实现,用1去除以每一个循环的数,然后加和即可,注意结果须保留两位数字,所以定义sum时须定义为double,而不能用int来定义sum。
#include
#include
#include
#include
using namespace std;
int main()
{
int m,n,i,j;
double sum=0,s;
cin>>m;
for(i=1;i<=m;i++)
{
cin>>n;
sum=0;
for(j=1;j<=n;j++)
{
s=pow(-1,j+1);
sum=sum+s*1/j;
}
cout<<fixed<<setprecision(2)<<sum<<endl;
}
return 0;
}

青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
将所有分数输入后,将所有数字按从小到大的顺序排序,利用循环将第一个数和最后一个数去掉,将剩余的数加和后除以总数减二,输出即可。
#include<stdio.h>
#include
#include<math.h>
#include
using namespace std;
int main()
{
int n,i;
double sum=0,m[110],s;
while (cin>>n)
{
sum=0;
for (i=0;i<n;i++)
{
cin>>m[i];
}
sort(m,m+n);
for (i=1;i<n-1;i++)
{
sum=sum+m[i];
}
s=sum/(n-2);
cout<<fixed<<setprecision(2)<<s<<endl;
}
return 0;
}

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
分情况去做,如果n小于等于4,直接输出n,如果n大于4,重新去定义n为1,第二年出生的牛在第五年生一头牛,利用循环求的所有牛。
#include
#include
#include
using namespace std;
int main()
{
int n,a,b,c,d,i;
while(cin>>n)
{
if(n==0)
break;
if(n<=4)
cout<<n<<endl;
else
{
n=n-4;
a=b=c=d=1;
for(i=1;i<=n;i++)
{
d=c+d;
c=b;
b=a;
a=d;
}
cout<<a+b+c+d<<endl;
}
}
return 0;
}

输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
输入一个数字,先取其数字的绝对值,将其绝对值赋值给另一个字母,然后将数字从大到小进行排序,输出即可。
#include
#include
using namespace std;
int main()
{
int a,i,j,t;
while(cin>>a&&a)
{
i=0;
int b[a];
while(i<a)
cin>>b[i++];
for(i=0;i<a;i++)
for (j=0;j<a-i-1;j++)
{
if(abs(b[j])<abs(b[j+1]))
{
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
}
}
for(i=0;i<a-1;i++)
cout<<b[i]<<" “;
cout<<b[i]<<’\n’;
}
return 0;
}
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
输入一个数字,判断其与后输入数字的大小,如果比前一个数字大,将其插入到这个数字后面,后面的数字依次往后推一个,输出所有数字即可。
#include
using namespace std;
int main()
{
int n,a[110],m,i,j,s=0;
while(cin>>n>>m)
{
if(m0&&n0)
return 0;
for(i=1;i<=n;i++)
{
cin>>a[i];
}
a[n+1]=m;
for(j=1;j<=n;j++)
for(i=1;i<=n+1-j;i++)
{
if(a[i]>a[i+1])
{s=a[i];
a[i]=a[i+1];
a[i+1]=s;}
}s=0;
cout<<a[1];
for(i=2;i<=n+1;i++)
{
cout<<” "<<a[i];
}cout<<endl;}}
每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。
输入一个数值,将sum加上x除以100,将其去除以100后取余,然后将sum加上x除以50,将其除以50,以此类推,最后输出sum即可。
#include
#include
using namespace std;
int main()
{
int n,sum,i,x;
while(cin>>n)
{
if(n==0)
break;
else
sum=0;
for(i=1;i<=n;i++)
{
cin>>x;
sum=sum+x/100;
x=x%100;
sum=sum+x/50;
x=x%50;
sum=sum+x/10;
x=x%10;
sum=sum+x/5;
x=x%5;
sum=sum+x/2;
x=x%2;
sum=sum+x;
}
cout<<sum<<endl;
}
return 0;
}

A和B不是简单的整数,而是两个时间,A和B 都是由3个整数组成,分别表示时分秒,比如,假设A为34 45 56,就表示A所表示的时间是34小时 45分钟 56秒。将A和B对应相加。
输入集合A和B,从第二组数字开始,如果相加数字大于60,则前一组加1,如果小于60,直接输出即可,
#include
#include
using namespace std;
int main()
{
int n,i,j,s,l,m,a[10];
while(cin>>n)
{
for(i=0;i<n;i++)
{
for(j=0;j<6;j++)
cin>>a[j];
s=a[0]+a[3];
l=a[1]+a[4];
m=a[2]+a[5];
if(m>=60)
{
l=l+m/60;
m=m%60;}
if(l>=60)
{
s=s+l/60;
l=l%60;}
cout<<s<<" “<<l<<” "<<m<<endl;}}
return 0;
}

求A^B的最后三位数表示的整数。
说明:A^B的含义是“A的B次方”
输入x和y,x为数值,y为次幂,先将x除以1000后取余赋值给z,因为只需输出后三位,利用循环实现次幂,输出结果即可。
#include<stdio.h>
#include
using namespace std;
int main()
{
int i,x,y,z;
while(cin>>x>>y)
{
if(x0&&y0)
break;
z=x%1000;
for(i=1;i<y;i++)
{
z=z*(x%1000);
z=z%1000;
}
cout<<z<<endl;
}
return 0;
}

有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
输入m从第一级开始走,不难看出第一级时共有0种,第二级时共有1种,第三级时共有两种,当n大于等于四时,寻找起规律,发现从第四级开始一共有前两级的和种,相加输出即可。
#include<stdio.h>
#include
using namespace std;
int f[41];
int main()
{
int n,m,i;
f[1]=0;
f[2]=1;
f[3]=2;
for(i=4;i<41;i++)
f[i]=f[i-1]+f[i-2];
cin>>n;
while(n–)
{
cin>>m;
cout<<f[m]<<endl;
}
return 0;
}

假设所有的短号都是是 6+手机号的后5位,比如号码为13512345678的手机,对应的短号就是645678。
现在,如果给你一个11位长的手机号码,你能找出对应的短号吗?
将所输入的一串数字定义为字符,首先需输出6,
然后再利用循环将a[6]以后的数字输出即可,所输出的即为校园短号。
#include
#include
using namespace std;
int main()
{
int n,i;
char a[11];
cin>>n;
while(n–)
{
for(i=0;i<11;i++)
{
cin>>a[i];
}
cout<<“6”;
for(i=6;i<11;i++)
{
cout<<a[i];
}
cout<<endl;
}
return 0;
}

第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
寻找其中的规律,可以将其倒着算,不难寻找到其中的规律,从1开始,倒数第n天时,一共有z=(1+1)*2个需计算n次即可,到最后输出其z的值即可。
#include
#include
using namespace std;
int main()
{
int n,m,i;
while(cin>>n)
{
m=1;
for(i=1;i<n;i++)
{
m=(m+1)*2;}
{
cout<<m<<endl;}
}
return 0;
}

总体来说我感觉杭电的这些题有点难,几乎每一个题都需要用while语句来实现多组数据的输入,有些题目中的规律也比较难寻找,题目中的规律成了这个题的核心关键,而课程设计这门课也比较的难,这一个学期的课程设计也没有学到什么东西,总是在会与不会之间徘徊,说懂也不懂,说不懂也懂那么一点,这一次课程设计不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。掌握了一些基本的学习c语言的方法,一步步的熟悉了规范和标准,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
感谢老师,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;每一次题目的完成,离不开老师的细心教导,而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。

猜你喜欢

转载自blog.csdn.net/qq_43641666/article/details/85842777