C语言编程:经典程序示例解析

需积分: 9 0 下载量 113 浏览量 更新于2024-07-25 收藏 698KB DOC 举报
"C语言经典程序190例" 在学习编程的过程中,理解并掌握各种算法和编程技巧是非常重要的。C语言作为一门基础且强大的编程语言,它的经典程序例子可以帮助我们深入理解和运用C语言的特性。这里我们将分析四个C语言的经典程序实例,涵盖数字运算、进制转换以及数论问题。 【程序1】该程序旨在找到满足特定条件的两位数??。条件是809乘以??等于800乘以??加上9乘以??再加上1,且8*??和9*??分别保持两位数和三位数。通过循环遍历10到99之间的所有两位数,计算每个数与809的乘积,检查是否符合要求,并打印出符合条件的??和乘积。这个程序展示了如何在C语言中进行条件判断和数值运算。 【程序2】此程序用于将输入的八进制数转换为十进制。程序通过读取用户输入的字符串,逐字符处理并转换。它利用了八进制到十进制转换的基本原理,即每一位八进制数乘以8的幂次后相加。在C语言中,可以使用字符数组和指针来处理字符串,并结合循环和条件判断实现转换。 【程序3】该程序的目标是计算0到7之间能组成多少个奇数。通过观察,我们可以发现每增加一个数,奇数的数量都会翻倍,除了2(因为它不生成新的奇数)。因此,通过累乘7或8来得到每一步的增量,然后累加得到总奇数数量。此程序展示了如何用C语言实现循环和条件控制结构来解决计数问题。 【程序4】最后一个程序是基于哥德巴赫猜想的简化版本,即所有偶数都可以表示为两个素数之和。程序使用两层嵌套循环,尝试将输入的偶数减去所有大于2且小于输入一半的奇数,如果差值也是一个素数,则找到了一个解。这里使用了数学库中的平方根函数来优化搜索范围,减少了计算量。程序展示了如何在C语言中进行素数检测和循环遍历。 这些程序涵盖了C语言的基础知识,如变量定义、算术运算、循环控制、条件语句、字符串处理、函数调用等,同时涉及到了数学和逻辑思维的应用。通过深入理解和实践这些程序,不仅可以提升C语言编程技能,还能培养解决问题的能力。
177 浏览量
【程序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;      else 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;               else                bonus=bonus10+(i-1000000)*0.01; printf("bonus=%d",bonus); }