#includestdioh #define N 10 void Funint aint n int i; fori=0;in;i++ scanfd&ai; void Outputint aint mint n int ic=2; a0=1; a1=1; printfd d a0a1; fori=2;in;i++ ai=ai-1+ai-2; printfdai;
这段代码有几个问题:
- 定义数组 a[n],n 没有初始化,会造成不确定的结果,应该先读入 n,再定义 a[n]。
- 输出的第一个数应该是 0,不是 1。
- 输出的格式不够清晰,应该在每行的最后添加一个空格。
下面是修改后的代码:
#include<stdio.h> #define N 10
void Fun(int a[], int n) { int i; for (i = 0; i < n; i++) { scanf("%d", &a[i]); } }
void Output(int a[], int m, int n) { int i, c = 1; a[0] = 0; a[1] = 1; printf("%d %d ", a[0], a[1]); for (i = 2; i < n; i++) { a[i] = a[i-1] + a[i-2]; printf("%d ", a[i]); c++; if (c % m == 0) { printf("\n"); } } }
int main() { int n, m, a[N]; scanf("%d,%d", &n, &m); Fun(a, n); Output(a, m, n); return 0;
原文地址: https://www.cveoy.top/t/topic/epbD 著作权归作者所有。请勿转载和采集!