2301_77065359 2023-04-17 10:06 采纳率: 86.7%
浏览 42
已结题

c语言编程中遇到的疑惑

请问怎样定义数组才能使其不错误?

对应以下实例
首先,提示用户:“您想计算斐波那契数列的项数(1~30):”,并将用户输入的数值存放到变量n中。
然后,判断用户输入数据是否正确,如果不正确则输出错误信息并终止程序运行。
接着,计算斐波那契数列的前n项,并存放到数组list中。
最后,输出计算结果,每个结果输出域宽为8,左对齐,每行最多输出5个结果(不能出现首行为空的情况)。

我找不到对应的确定值定义数组,请问该怎样处理?

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2023-04-17 10:50
    关注

    供参考:

    #include <stdio.h>
    int main()
    {
        int i, n;
        int list[31] = { 0 };
        list[0] = 0;
        list[1] = 1;
        scanf("%d", &n);
        if (n < 1 || n >30)
            printf("input error!");
        else {
            for (i = 2; i <= n; i++)
                list[i] = list[i - 1] + list[i - 2];
            for (i = 1; i <= n; i++) {
                printf("%-8d", list[i]);
                if (!(i % 5) && i != n)
                    printf("\n");
            }
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 浪客 2023-04-17 10:34
    关注

    n的范围是1-30,数组大小定义为30就够了。int list[30]={1,1}

    评论 编辑记录
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-17 12:07
    关注
    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/643981
    • 除此之外, 这篇博客: 编写程序,实现用户输入15个数据后进行排序,要求排序后按由大到小存放在一个数组中。重新输入一个数,编写查找算法找到该数是数组中的第几个元素的值,如果该数不在数组中,则输出“无此数”。中的 C语言实现:编写程序,实现用户输入15个数据后进行排序,要求排序后按由大到小存放在一个数组中。重新输入一个数,编写查找算法找到该数是数组中的第几个元素的值,如果该数不在数组中,则输出“无此数”。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 编程基础第六版 课后题

      代码如下

      #include <stdio.h>
      #include <math.h>
      int main()
      {
      int i,j,t;
      int a[15];
      int x,l,h,mid,n;
      n=15;
      l=0;
      h=n-1;
      printf("请输入15个不同数字,按一次输入一个,依次输入15次的方法输入数字:\n");
      for(i=0;i<15;i++)
      scanf("%d",&a[i]);
      for(j=0;j<14;j++)
      {
      for(i=0;i<14-j;i++)   //这里我第一次写也忽略了j要不断的去替换i,所以对于i来说它的循环条件应该是14-j,有好多人可能和我一样写成i<15啦
      if( a[i]<a[i+1])
      {
      t=a[i];
      a[i]=a[i+1];
      a[i+1]=t;
      }
      }
      printf("按从大到小的排序结果:");
      for( i=0;i<15;i++)
      printf("%d\t",a[i]);
      printf("\n");
      
      for (l=0, h=14, printf("请输入一个数:"), scanf("%d", &x); l<=h;)//while也可以但是我很奇怪用while会提前退出循环哈哈哈
      {
      mid=(l+h)%2;
      if (x>a[mid])h=mid-1;
      else if (x<a[mid])l=mid+1;
      else
      {
      printf("%d是第%d位数",x,mid+1);
      break;
      }
      }
      if(x!=a[mid])
      printf("查无此数!");
      return 0;
      }
      

      这个是我用手机c compiler码的效果~顺便一提这个软件真的好用(✪▽✪)

    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 已采纳回答 4月24日
  • 创建了问题 4月17日

悬赏问题

  • ¥30 各位help写一下代码
  • ¥15 在运行SDEdit模型下载不了
  • ¥15 求51控制l298n驱动的小车中超声波避障怎么写
  • ¥15 电脑连上WIFI却用不了
  • ¥30 MATLAB在RLC电路的固有响应和阶跃响应GUI仿真报告
  • ¥15 hyper-v出现的问题
  • ¥15 有能用的可加酬金,求可以批量下载懒人听书的软件,能登录自己帐号的。
  • ¥100 高博一起做RGB-D SLAM(5)VO无法出visualisation问题
  • ¥15 使用matlab进行手眼标定的仿真验证,得到齐次矩阵与opencv相差较大
  • ¥15 求推荐一个好用的录屏软件