课程设计报告

1.成绩转换为等级

题意:将百分制成绩转换成相应等级。

90-100为A;80-89为B;70-79为C;60-69为D;0-59为E;

 思路:对应等级应为分情况判断,主体用判断语句。

      细节:输入多组,每组一行,注意回车换行。

 源码: 

#include<stdio.h>

int main()

{

int t;

while(scanf("%d",&t)!=EOF)

if(t>=90&&t<=100)

printf("A\n");

else if(t>=80&&t<=89)

printf("B\n");

else if(t>=70&&t<=79)

printf("C\n");

else if(t>=60&&t<=69)

printf("D\n");

else if(t>=0&&t<=59)

printf("E\n");

else

printf("Score is error!\n");

}

2.水仙花数

 题意:在给定的范围内找水仙花数。

 思路:在指定范围内挑数,需要用循环来找,另外还需判断是否为水仙花数,所以用循环判断嵌套。

 细节:注意输出数据之间的空格。

 源码:

 #include<stdio.h>

int main()

{

int m,n,i,a,b,c,j;

while(scanf("%d %d",&m,&n)!=EOF)

{

j=0;

for(i=m;i<=n;i++)

{

a=i/100;b=i/10%10;c=i%10;

    if(i==a*a*a+b*b*b+c*c*c)

    {

j++;

if(j==1)

    printf("%d",i);

else

printf(" %d",i);

    }

     }

 if(j==0)

     printf("no");

 printf("\n");

 }

}

3.奇数乘积

 题意:在给定的整数中找出奇数并求出它们的乘积。                                                                                                                                                                                                                                                                                                                                          

 思路:首先需要判断出奇数,然后奇数相乘得乘积,判断奇数只需除以二即可。

 细节:注意输入输出格式。

 源码:

 #include<stdio.h>

int a[10000];

int main()

{

int n,i,b;

while(scanf("%d",&n)!=EOF)

{

b=1;

for(i=1;i<=n;i++)

{

scanf("%d",&a[i]);

if(a[i]==1||a[i]%2!=0)

b=b*a[i];

}

printf("%d\n",b);

}

}

4.表达式值的判断

 题意:给定表达式,判断表达式的值是否都为素数。

 思路:首先需会判断素数,然后用求解的表达式的值进行判断。

 细节:注意输入零时的处理。

 源码:

 #include<stdio.h>

int main()

{

int x,y,i,j,a,b;

while(scanf("%d %d",&x,&y)!=EOF)

    {

b=0;

for(i=x;i<=y;i++)

{

a=i*i+i+41;

for(j=2;j<a;j++)

{

if(a%j==0)

b++;

}

}

if(b==0)

{

if(x==0&&y==0)

continue;

else

printf("OK\n");

}

else if(b!=0)

printf("Sorry\n");

}

}

5.多项式的前n项和

 题意:给定多项式,求出该多项式的前n项和。

 思路:利用嵌套表示出多项式,然后求解。

 细节:注意多项式中正负的表示,小数的控制。

 源码:

 #include<stdio.h>

int main()

{

int m,n,i,j;

float a=0.0;

while(scanf("%d",&m)!=EOF)

{

for(i=1;i<=m;i++)

{

scanf("%d",&n);

for(j=1;j<=n;j++)

{

if(j%2==1)

{

a=1*1.0/j+a;

}

else

{

a=-1*1.0/j+a;

}

}

printf("%.2lf\n",a);

a=0;

}

}

return 0;

6.数列的平均值序列

     题意:给定一定特点的数列,按照顺序求每定值数的平均值,得平均值序列。

     思路:根据数列特点整理数列,然后嵌套向外抽数,求平均值。

     细节:注意输入输出格式,注意代码的条理顺序。

     源码:

     #include<stdio.h>

     int main()

     {

     int n,m,i,j,sum=0,k;

     while(scanf("%d %d",&n,&m)!=EOF)

     { k=0;

     for(i=1;i<=n/m;i++)

     { sum=0;

      if(i>1) printf(" ");

 for(j=1;j<=m;j++)

 {

 k=k+2;

 sum+=k;

 }

 printf("%d",sum/m);

 }

 if(n%m)

      {

 sum=0;

      for(j=1;j<=n-n/m*m;j++)

 {

 k=k+2;

 sum+=k;

 }

 printf(" %d",sum/(j-1));}

 printf("\n");

      }

      } 

7.评委打分

      题意:多个评委打分,去掉最高分和最低分,剩余分数求平均值即得选手成绩。

      思路:利用嵌套找出最大值和最小值,然后剪掉,将剩余值相加求平均值。

      细节:注意数据类型和小数点位数。

      源码:

      #include<stdio.h>

      int main()

      {

 int i,a,b,c,d;

 double m,n;

 while(scanf("%lf",&n)!=EOF)

 {

 b=-1;c=101;d=0;

 for(i=1;i<=n;i++)

 {

 scanf("%d",&a);

 if(a>b)

 b=a;

 if(a<c)

 c=a;

 d=d+a;

 }

 m=d-b-c;

 printf("%.2lf\n",m/(n-2));

 }

      }

8.母牛生小牛

     题意:一头母牛,每年年初生一头小母牛,每头小母牛第四年开始每年年轻也生一头小母牛,求第n年共多少母牛。

     思路:递推出公式,找每年母牛个数之间的关系,然后求解。

     细节:注意特殊情况。

     源码:

     #include <stdio.h>

     int a[60];

     int main()

     {

     int n,i;

     while(scanf("%d",&n)&&n!=0)

     {

     a[1]=1;

     a[2]=2;

     a[3]=3;

     a[4]=4;

     for(i=5;i<=60;i++)

     {

     a[i]=a[i-1]+a[i-3];

     }

     printf("%d\n",a[n]);

     }

     }

9.绝对值排序

      题意:给定n个数,按照绝对值从大到小排序。

      思路:先求出绝对值,然后比较绝对值大小,进而排序。

      细节:注意n等于零时的处理以及输出的格式。

      源码:

      #include<stdio.h>

      #include<math.h>

      int a[1000];

      int main()

      {

 int n,i,b,j;

 while(scanf("%d",&n)!=EOF)

 {

 if(n==0)

 break;

 for(i=1;i<=n;i++)

 {

      scanf("%d",&a[i]);

 }

 for(i=1;i<=n-1;i++)

 {

      for(j=i+1;j<=n;j++)

 {

 if(fabs(a[i])<fabs(a[j]))

 {

 b=a[i];

 a[i]=a[j];

 a[j]=b;

 }

 }

 }

  for(i=1;i<=n-1;i++)

 {

 printf("%d ",a[i]);

 }

 printf("%d\n",a[i]);

 }

      } 

10.有序数列插入整数

       题意:给定从小到大排列好的序列,另给一个整数,将整数插入序列,并使新的序列仍然有序。

       思路:应用判断语句将插入的整数安置到正确位置,用循环语句将数组排列好。

       细节:注意考虑各种情况,不要有漏。

       源码:

       #include<stdio.h>

       int main()

       {

       int n,m,i,b;

       int a[1000];

       while(scanf("%d %d",&n,&m)!=EOF)

       {

       if(n==0&&m==0)

       continue;

       else

       {

       b=0;

       for(i=1;i<=n;i++)

       {

       scanf("%d",&a[i]);

       }

       for(i=1;i<=n;i++)

       {

       if(m<a[i]&&b!=1)

       {

       printf("%d %d",m,a[i]);

       b=1;

       }

       else

       printf("%d",a[i]);

       if(i<n)

       printf(" ");

       }

       printf("\n");

       }

  }

       }

11.发工资人民币最少张数

       题意:六种人民币面值,已知老师工资数,求最少准备多少张人民币才能在给老师发工资时不找零。

       思路:要找最少人民币张数,需要从大面值的纸币找起,通过循环来找。

       细节:注意输入输出格式。

       源码:

       #include<stdio.h>

       int main()

       {

       int n;

       while(scanf("%d\n",&n)!=EOF)

       {

       int i,a,b,c,d,e,f,s=0;

       int k[1000];

       if(n==0||n>=100) 

  continue;

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

       scanf("%d",&k[i]);

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

       {

       a=k[i]/100;

       f=(k[i]-a*100)/50;

       b=(k[i]-a*100-f*50)/10;

       c=(k[i]-a*100-b*10-f*50)/5;

       d=(k[i]-a*100-b*10-c*5-f*50)/2;

       e=k[i]-a*100-b*10-c*5-d*2-f*50;

       s=s+a+b+c+d+e+f;

       }

       printf("%d\n",s);

       }

       }

12.回文串

       题意:回文串是正读和反读都一样的字符串,判断读入字符串是否回文。

       思路:将字符串拆开,两边向内两两比较。

       细节:注意头文件以及字符串的表示。

       源码:

       #include<stdio.h>

       #include<string.h>

       int main()

       {

       int n,l,i,j;

       char s[100];

       while(scanf("%d",&n)!=EOF)

       {

       getchar();

       while(n--)

       {

       gets(s);

       l=strlen(s);

       i=0;

       j=l-1;

       while(i<j)

       {

       if(s[i]!=s[j])

       break;

       i++;

       j--;

       }

       if(i>=j)

       printf("yes\n");

       else

       printf("no\n");

       }

       }

       }

13.十进制转换

       题意:给定十进制数,转换成R进制。

       思路:根据进制转换进行倒推,其中十六进制需特别处理。

       细节:注意特殊情况的处理,不要漏掉。

       源码:

       #include<stdio.h>

       int main()

       {

       int m,n,i;

       while(scanf("%d %d",&m,&n)!=EOF)

       {

       if(m<0)

       {

       printf("-");

       m=-m;

       }

       if(n==0)

       {printf("0\n");

       continue;}

       int c=0,a[100];

       while(m)

       {

       a[c]=(m%n);

       c++;

       m/=n;

       }

       for(i=c-1;i>=0;i--)

       {

       if(a[i]>=10)

       {printf("%c",'A'+a[i]-10);}

       else

       printf("%d",a[i]);

       }

       printf("\n");

       }

       return 0;

       }

14.时间相加

       题意:给定时分秒三个值,给出两组数据,求两组相加所得。

       思路:按照时间六十进制从秒开始相加。

       细节:注意进制转换。

       源码:

       #include<stdio.h>

       int main()

       {

       int n,i;

       int a1,a2,a3,b1,b2,b3,q,w,e;

       while(scanf("%d",&n)!=EOF)

       {

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

       {scanf("%d %d %d %d %d %d",&a1, &a2, &a3, &b1, &b2, &b3);

       q=a1+b1;

       w=a2+b2;

       e=a3+b3;

       if(e>=60)

       {e=e-60;

       w++;

       }

       if(w>=60)

       {w=w-60;

       q++;

       }

       printf("%d %d %d",q,w,e);

       printf("\n");

       }

       }

       }

15.A的B次方

       题意:给定A,B,求A的B次方最后三位。

       思路:A的B次方即B个A相乘,用循环,然后借助求余来找最后三位。

       细节:注意零时的特殊情况,不要有漏。

       源码:

       #include<stdio.h>

       int main()

       {

       int n,m;

       long long int k;

       while(scanf("%d %d",&n,&m)!=EOF)

       {

       if(n==0&&m==0)

       break;

       else if(m==0)

       printf("1\n");

       k=1;

       while(m--)

       {

       k=k*n;

       k=k%1000;

       }

       printf("%lld\n",k);

       }

       }

总结:通过这些题目的练习,拓宽了对c语言的认识。首先,每个编码需要正确的对应头文件。其次,输入输出格式也应注意,没有回车换行不行,多一个空格也不行。然后,需要熟练掌握循环语句和判断语句,这样才能有条不紊的进行编程,防止思路乱掉。然后,给定的量不能定义错,标点符号也要用对。最后,还要注意是否超时。这么多细节,构成了c语言程序。因此,做c语言要细心。

众多题目包含了生活中方方面面的问题,是对实际应用的展示,足以说明它的实用性。越深入越觉得其博大精深,是必须用心学,细心学的东西。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值