c语言编程

1. 使用菜单选择趣味程序
设计目的:本程序旨在训练学生的编程能力,使用C语言最基本的知识,训练结构化程序设计的基本技术。
功能:设计分两步,首先设计一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。
要求:使用数字1—6来选择菜单项,其他输入则不起作用。其实是5道编程题:
1)FindNum 使用穷举法寻找满足下式中的i 的值(30+i)*6237=(10*i+3)*3564
2)FindRoot 求方程 的根的程序
3)Detective 一辆汽车撞人后逃跑。4个目击者提供如下线索:
甲:牌照三、四位相同; 乙:牌号为31xxxx;
丙:牌照五、六位相同; 丁:三到六位是一个整数的平方
4)Bear
本题是一个笑话,话说有一只狗熊到玉米地里掰玉米,一边掰一边吃。第一天吃了一半,又拿走一个回去喂小狗熊。第二天又去吃了剩下的一半,走时仍然带一个回去喂小狗熊。以后每天都吃前一天剩下的一半,拿走一个。到第十天时,地里只剩下一个玉米。求地里一共有多少玉米。
5)Diamond
本题要求编制打印以下图案的程序,注意题目要求在左边留出一定空格
*
***
*****
*******
*****
***
*
6)GoodBye!

// 解:狗熊吃玉米问题
#include<stdio.h>
int EatCorn(int days) // 递归调用狗熊吃玉米
{
if(days==1)
return 1;
else return((EatCorn(days-1)+1)*2); // 狗熊每天都吃掉前一天的一半多一个
}
void main(void)
{
   printf("%d\n",EatCorn(10));
}

// Diamond问题
#include<stdio.h>
void main(void)
{
   for (int i=0;i<=6;i++)  // 控制行数,共7行
   {
   
   if (i<4) // 控制前四行
   {
   for (int j=0;j<=2-i;j++)
          printf("%s"," "); // 控制左边空隙
   for (int m=0;m<=i*2;m++)
          printf("*");
       printf("\n");
   }
   else  // 控制后三行
   {
     for (int v=4;v<=i;v++)
         printf("%s"," ");
 for(int n=0;n<=12-2*i;n++) // 原理就是第5行(含)后递减2
 printf("*");
 printf("\n");
   }
   
   }
   
}
// 原理特别说明:
// 当i=4时,则12-2*4=4(千万不要误会是4个星号它是5个星号,下标是0开始的,下述同理)
// 当i=5时,则12-2*5=2
// 当i=6时,则12-2*6=0

1、 程序菜单是很简单的,它主要是考察了对ASCII码,只需把char转换成ASCII码并判断它是不是1---6数字,若不是则返回或者给出适当的提示。对此,太简单就不作写代码了。

1)、2)、3)没有看明白题意。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-26
这个题目,说实话,真心没有多大的兴趣编写。
数字选择完全可以用switch来做。
第一题,很简单,直接从0开始,判断左右2边的值是否相等就行。
第二题,百度上很多答案,
第三题,就是找一个数的平方,它的千位和百位一样,十位与个位一样,至于如果判断,很多方法。可以将每一位都赋给一个数,然后比较。当然还有简单的,除以100,然后与11取余,为0则千位与百位相等。十位与个位那不是更简单了吗?
第四题,就是加1乘以2,搞10次就行。
第五题,完全是for循环,或者直接用字符串搞定就行了。
没什么编写的兴趣,如果你自己编写了,无法编译通过。或者是程序存在逻辑问题,可以发到我邮箱,找时间帮你修修。邮箱地址看我资料本回答被网友采纳
第2个回答  2013-08-26
上面的解答比较有趣!
相似回答