好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C程序设计五百例--用c语言解决数学建模问题.doc

57页
  • 卖家[上传人]:ni****g
  • 文档编号:479125707
  • 上传时间:2024-02-19
  • 文档格式:DOC
  • 文档大小:441.50KB
  • / 57 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 学会用 c 语言解决生活中的问题【程序 1】题目:有 1、 2、 3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1. 程序分析:可填在百位、十位、个位的数字都是 1、 2、3、4组成所有的排列后再去掉不满足条件的排列2. 程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) / *以下为三重循环 */for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /* 确保 i 、 j 、k 三位互不相同 */printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序 2】题目:企业发放的奖金根据利润提成利润 (I) 低于或等于 10 万元时,奖金可提 10%;利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10 万元的部分,可可提成 7.5%;20 万到 40 万之间时,高于 20 万元的部分,可提成 5%;40 万到 60 万之间时高于 40 万元的部分,可提成 3%; 60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,高于 100 万元时,超过 100 万元的部分按 1%提成,从键盘输入当月利润 I ,求应发放奖金总数?1. 程序分析:请利用数轴来分界,定位。

      注意定义时需把奖金定义成长整型2. 程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;1else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}============================================================== 【程序 3】题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少? 1. 程序分析:在 10 万以内判断,先将该数加上 100 后再开方,再将该数加上 268 后再开方,如果开方后的结果满足如下条件,即是结果。

      请看具体分析:2. 程序源代码:#include "math.h"main(){long int i,x,y,z;for (i=1;i<100000;i++){ x=sqrt(i+100); /*x 为加上 100 后开方后的结果 */y=sqrt(i+268); /*y 为再加上 168 后开方后的结果 */if(x*x==i+100&&y*y==i+268)/* 如果一个数的平方根的平方等于该数,这说明此数是完全平方数 */printf("\n%ld\n",i);}}==============================================================【程序 4】题目:输入某年某月某日,判断这一天是这一年的第几天?1. 程序分析: 以 3 月 5 日为例, 应该先把前两个月的加起来, 然后再加上 5 天即本年的第几天, 特殊情况,闰年且输入月份大于 3 时需考虑多加一天2. 程序源代码:main(){int day,month,year,sum,leap;printf("\nplease input year,month,day\n");scanf("%d,%d,%d",&year,&month,&day);switch(month)/* 先计算某月以前月份的总天数 */{case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;2case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf("data error");break;}sum=sum+day; /* 再加上某天的天数 */if(year%400==0||(year%4==0&&year%100!=0))/* 判断是不是闰年 */leap=1;elseleap=0;if(leap==1&&month>2)/* 如果是闰年且月份大于 2, 总天数应该加一天 */sum++;printf("It is the %dth day.",sum);}==============================================================【程序 5】题目:输入三个整数 x,y,z ,请把这三个数由小到大输出。

      1. 程序分析: 我们想办法把最小的数放到x 上,先将 x 与 y 进行比较, 如果 x>y 则将 x 与 y 的值进行交换,然后再用 x 与 z 进行比较,如果 x>z 则将 x 与 z 的值进行交换,这样能使 x 最小2. 程序源代码:main(){int x,y,z,t;scanf("%d%d%d",&x,&y,&z);if (x>y){t=x;x=y;y=t;} /*交换 x,y的值 */if(x>z){t=z;z=x;x=t;}/*交换 x,z的值 */if(y>z){t=y;y=z;z=t;}/*交换 z,y的值 */printf("small to big: %d %d %d\n",x,y,z);}==============================================================【程序 6】题目:用 * 号输出字母 C 的图案1. 程序分析:可先用 '*' 号在纸上写出字母 C,再分行输出2. 程序源代码:#include "stdio.h"main(){printf("Hello C-world!\n");printf(" ****\n");printf(" *\n");3printf(" * \n");printf(" ****\n");}==============================================================【程序 7】题目:输出特殊图案,请在 c 环境中运行,看一看, Very Beautiful!1. 程序分析:字符共有 256 个。

      不同字符,图形不一样2. 程序源代码:#include "stdio.h"main(){char a=176,b=219;printf("%c%c%c%c%c\n",b,a,a,a,b);printf("%c%c%c%c%c\n",a,b,a,b,a);printf("%c%c%c%c%c\n",a,a,b,a,a);printf("%c%c%c%c%c\n",a,b,a,b,a);printf("%c%c%c%c%c\n",b,a,a,a,b);}==============================================================【程序 8】题目:输出 9*9 口诀1. 程序分析:分行与列考虑,共9 行 9 列, i 控制行, j 控制列2. 程序源代码:#include "stdio.h"main(){int i,j,result;printf("\n");for (i=1;i<10;i++){ for(j=1;j<10;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占 3 位*/}printf("\n");/* 每一行后换行 */}}==============================================================【程序 9】题目:要求输出国际象棋棋盘。

      1. 程序分析:用 i 控制行, j 来控制列,根据 i+j 的和的变化来控制输出黑方格,还是白方格2. 程序源代码:#include "stdio.h"main(){int i,j;for(i=0;i<8;i++)4{for(j=0;j<8;j++)if((i+j)%2==0)printf("%c%c",219,219);elseprintf(" ");printf("\n");}}==============================================================【程序 10】题目:打印楼梯,同时在楼梯上方打印两个笑脸1. 程序分析:用 i 控制行, j 来控制列, j 根据 i 的变化来控制输出黑方格的个数2. 程序源代码:。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.