C语言编程挑战:从八进制到奇数计数

需积分: 3 1 下载量 47 浏览量 更新于2024-07-31 收藏 57KB DOC 举报
"C语言编程例题" 这组C语言例题涵盖了不同的算法和概念,旨在帮助学习者加深对C语言的理解。以下是对每个程序的详细解释: 【程序81】 该程序解决了一个数学问题,寻找一个两位数??,使得809乘以??的结果等于800乘以??加上9乘以??再加上1。程序通过遍历所有可能的两位数(10到99),检查乘积是否满足条件。`output()`函数用于打印计算结果。在`main()`函数中,使用一个for循环来测试每个数字,并通过条件判断`if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)`来确保结果符合题目要求。 【程序82】 这个程序将输入的八进制数转换为十进制。它通过读取用户输入的字符串,然后逐位处理,每一步都将当前位的值乘以8(八进制的基础)并累加到总和中。最后,通过`printf("%d",n);`打印出十进制结果。此程序利用了字符与它们对应数值的ASCII码差值(例如,'1'-'0'等于1)来将字符转换为数值。 【程序83】 程序83计算0到7之间所有可能的数字组合,形成奇数的个数。初始值`sum`和`s`都设置为4,因为4是0到7之间所有奇数的个数。外层循环`for(j=2;j<=8;j++)`迭代数字的位置,内层循环计算每个位置上的奇数个数。对于每个位置,根据位置的不同,`s`乘以7或8,`sum`则加上`s`的结果。程序最后打印出每个位置的奇数个数以及总的组合数。 【程序84】 这个程序试图证明任何偶数都可以表示为两个素数之和。它使用两个嵌套循环,外层循环从3开始,每次增加2,因为偶数不可能是素数。内层循环寻找可以整除外层循环变量`b`的素数,如果找到,则跳出循环。如果没有找到,说明`b`是素数,继续尝试下一个偶数。然而,这个程序没有完全实现题目要求,因为它没有找到所有可能的素数对,而只是简单地检查了`b`是否是素数。要完全解决问题,需要更复杂的算法,如Goldbach's Conjecture。 这些例题展示了C语言的基本语法、循环结构、条件语句、数学运算以及字符串处理。通过练习这样的题目,学习者可以提高逻辑思维能力和编程技能。