c语言。

问题描述

c语言。

Write a program to calculate the Fibonacci sequence? The i-th element of the Fibonacci sequence is defined as follows.公式请看图 Ex)011235813
Fibonacci sequence? Input 1, input another numberto calculate the Fibonacci sequence? Input 2, show the Fibonacci sequence ? Input 3, initialization? Input 4, terminate the program

解决方案

 void PrintMenu()
{
    printf("*************
");
    printf("1. Calculate
");
    printf("2. Show it!
");
    printf("3. Initialize
");
    printf("4. Quit
");
    printf("*************
");
    printf("Input : ");
}

int main()
{
    char a;
    int b = 0;
    int i;
    int Fx = 1;
    int Fxx = 0;
    while(true)
    {
        PrintMenu();
        a = getchar();
        getchar();
        switch(a)
        {
        case '1':
            printf("Input the number : ");
            scanf("%d",&b);
            getchar();
            break;
        case '2':
            for(i=0;i<b;i++)
            {
                if(i == 0)
                    printf("%d ",Fxx);
                else if(i == 1)
                    printf("%d ",Fx);
                else
                {
                    printf("%d ",Fx+Fxx);
                    int temp = Fx;
                    Fx += Fxx;
                    Fxx = temp;
                }
            }
            printf("
");
            Fx = 1;
            Fxx = 0;
            break;
        case '3':
            b = 0;
            break;
        case '4':
            return 0;
        }
    }
    return 0;

}

解决方案二:

C语言中通过函数指针实现回调函数(Callback Function)

====== 首先使用typedef定义回调函数类型?======?
typedef void (*event_cb_t)(const struct event *evt, void *userdata);上面的语句表示event_cb_t类型函数范围值类型为void类......
答案就在这里:C语言中的回调函数

解决方案三:

 #include<stdio.h>
void printList()
{
    printf("*************
");
    printf("1. Calculate
");
    printf("2. Show it!
");
    printf("3. Initialize
");
    printf("4. Quit
");
    printf("*************
");
    printf("Input : ");
}
void nOfFab(int n)
{
    int f1 = 0;
    int f2 = 1;
    int count = 2;
    int tmp = 0;
    if(n <= 0){
        printf("
");
        return;
    }
    printf("0");
    if(n == 1){
        printf("
");
        return;
    }
    printf(" 1");
    if(n == 2){
        printf("
");
        return;
    }
    while(count < n){
        tmp = f1;
        f1 = f2;
        f2 = f1 + tmp;
        printf(" %d",f2);
        count ++;
    }
    printf("
");
}
void main()
{
    int count = 0;
    int select = 0;
    int flag = 0;
    while(!flag){
        printList();
        scanf("%d",&select);
        switch(select){
           case 1:
               printf("Input the number : ");
               scanf("%d",&count);
               break;
           case 2:
               nOfFab(count);
               break;
           case 3:
               count = 0;
               break;
           case 4:
               flag = 1;
               break;
        }
    }
}

解决方案四:

我的代码比较简洁,求采纳!

#include<stdio.h>
int PrintMenu()
{
    int a;
    printf("*************
");
    printf("1. Calculate
");
    printf("2. Show it!
");
    printf("3. Initialize
");
    printf("4. Quit
");
    printf("*************
");
    printf("Input : ");
    scanf("%d",&a);
    return a;
}
int main(){
    int n=0;
    int i;
    int f1,f2,list[300]={0};
    while(1){
        switch(PrintMenu())
        {
            case 1:
                printf("Input the number : ");
                scanf("%d",&n);
                f1=f2=1;
                for(i=1;i<=n;i++){
                    list[i]=f1;
                    f1+=f2;
                    list[++i]=f2;
                    f2+=f1;
                }
                break;
            case 2:
                for(i=0;i<n;i++)
                    printf("%d ",list[i]);
            printf("
");
                break;
            case 3:
                n=0;
                break;
            case 4:
                return 0;
        }
    }
}

时间: 2024-10-22 00:04:49

c语言。的相关文章

IE浏览器的语言显示问题

一.将语言新增到 Internet Explorer 1. 开启 Internet Explorere,单击浏览器右上角的 [工具] 按钮,选择 [Internet 选项]. 2. 切换到 [常规] 标签页,点击 [语言]. 3. 在 [语言首选项] 视窗中,点击 [添加]. 4. 在 [添加语言] 中,从列表中选取语言,再单击 [确定]. 电脑常识 5. 将语言新增到 Internet Explorer. 6. 如果有多个语言,可透过 [上移] 和 [下移] 按钮,对语言进行优先顺序排列,当网

c语言如何输出菱形

 适有同学问起一些C语言题目,本想上网搜索了事,但网上的方法都是分为上下部分用两个嵌套for循环输出.我想有没有合起来输出的呢,这样符合简洁又美观的要求呢?答案是有的. 题目:输出行列都相等的菱形,如5行5列: 行列 12345 1      * 2     *** 3    ***** 4     *** 5      *   分析: 当行数等于总行数的一半时,'*'是递增的,递增为2. 当行数大于总行数的一半时,'*'是递减的,递增为2.   设有一个行列为n的菱形, 我们用变量i作为行数,

Java有哪些常用语?Java常用语言汇总

  Java有哪些常用语?不介绍Java 常用语,对Java 的总体介绍就是不完整的.尽管促使Java 诞生的源动力是可移植性和安全性,但在Java 语言最终成型的过程中,其他一些因素也起了重要的作用.接下来,绿茶小编就一一来介绍一下. · 简单(Simple) · 安全(Secure) · 可移植(Portable) · 面向对象(Object-oriented) · 健壮(Robust) · 多线程(Multithreaded) · 体系结构中立(Architecture-neutral)

用C语言实现python的扩展模块

用C语言实现python的扩展模块 示例1: 1    Example.c int add(int a,int b) {         return a+b; } int sub(int a,int b) {         return a -b; } int mul(int a,int b) {         return a*b; } int div1(int a,int b) {         if(0 == b)         {                 return

求助贴:c语言编程问题

问题描述 求助贴:c语言编程问题 解决方案 在你的程序里scanf()函数返回的是一个正整数,无论你输入的是不是-1,他接收的一直是一个参数,所以返回的一直是1.并且还是使用"%lu"来接收参数的,输入-1一定不会退出程序的,输入1.2scanf()只接收到了1,因为1.2不符合输入的规则"%lu",也会返回1.程序不会停下 解决方案二: 疑惑:1.输入0有效,输出真确2.输入-1不退出,-1被强制转换为int类型3.输入1.2输出1个奇数后又printf();然后

Python:十年语言之冠

最近我发现了这个PYPL--编程语言流行指数.它对各种语言的流行指标进行了二次发掘.作者指出TIOBE指数很可能不能反映出真实情况,归咎于一些编程语言的名称会导致误解.他引入了一些新术语,利用谷歌趋势得出来不同的结论. 通过作者的研究,我们可以得知,在过去的十年里,Python语言获得了最大的增长幅度.从图片上我们可以看到10年内它的非常漂亮的线性增长,恭贺Python语言! 这个图表的数据非常的有意思,没有大起大浮并不是件坏事,这表明不断的有群体(来自Java和PHP--一个大部落)希望学习这

Web脚本开发语言比较

我们都一定对比过编程的轻松与简单性.虽然我们都确认php和perl是最容易学习和编程的语言,但我仍旧想知道,如果用php.asp.jsp以及perl分别编写一个同样的程序,哪一个将最快. 进行这样的对比依赖于操作系统和硬件设备.对于我来说,在linux/apache上运行php是非常快的,即使机器属于低端Pro类型.当然,每个人都知道linux是多么的稳定与快速.IIS上的ASP运行可以非常快,但是也要求相当高的硬件性能. 至于Java,许多编程者都一直在抱怨它怎么会这么慢 - 有一个报告叫做"

用Keil、C语言对C8051F310编程,求例程。。

问题描述 用Keil.C语言对C8051F310编程,求例程.. 随意的例程就行如果有按键消抖,数码管显示,占空比调节就更好了感激不尽! 解决方案 硬件电路图都没有--

c语言基础-对于c语言该如何更好的学习。

问题描述 对于c语言该如何更好的学习. 我是个初学者,想问一下c语言在编程时有什么方法和技巧吗?编程时所用的冒泡法,递归,分别是什么意思 解决方案 C语言并不适合初学者,因为它比较原始和简陋,需要对计算机底层的细节有所了解,实现相同的功能,往往需要比别的语言多很多倍的代码量,而且语法检查不严格,初学者很难驾驭. 很多人学C语言并不是抱着学习本身为目的的,相反,不过是应付一个课程或者等级考试.但是这两者完全不同.所以在回答你的问题以前,先得搞清楚你属于什么情况. 解决方案二: 别急 慢慢来 以后都

c语言-请问怎么学好《C语言程序设计教程》

问题描述 请问怎么学好<C语言程序设计教程> 这本书下学期就要学了,可是看着迷迷糊糊,看不懂,有没有什么学习的捷径?什么配套的辅导书比较好?谢谢! 解决方案 简单来说,就是Reading+Coding. 阅读入门可以从谭浩强的<C程序设计>开始,国人所写比较符合我们的思维习惯,但是过于基础,许多细节问题没有讲到,所以看完那本可以接着看看<C语言深度解剖>. 另外还有两本国外的C语言经典著作<C程序设计语言><数据结构与算法分析--C语言描述>,可