生成程序 int main() { double i = 2.0, j = 1.0; double sum = 0.0; int n; printf("请输入项数\n"); scanf_s("%d",&n); for (n = 0; n < 20; n++) { sum += i / j; i = i + j; j = i - j; } printf("前%d项的合是%f\n",n, sum); return 0; }扩充文法
时间: 2023-06-19 18:03:59 浏览: 91
以下是扩充后的文法:
<程序> ::= int main() <复合语句>
<复合语句> ::= { <变量声明> <循环语句> <输出语句> return 0; }
<变量声明> ::= <变量类型> <变量名>; | <变量类型> <变量名> = <表达式>;
<变量类型> ::= int | double
<变量名> ::= <字母> | <变量名><字母> | <变量名><数字>
<字母> ::= a | b | c | ... | z | A | B | C | ... | Z
<数字> ::= 0 | 1 | 2 | ... | 9
<表达式> ::= <数字> | <变量名> | <表达式> <运算符> <表达式>
<运算符> ::= + | - | * | /
<循环语句> ::= for ( <循环变量声明> ; <循环条件> ; <循环变量修改> ) <语句>
<循环变量声明> ::= <变量类型> <循环变量名> = <初值>;
<循环变量名> ::= <字母> | <循环变量名><字母> | <循环变量名><数字>
<初值> ::= <数字>
<循环条件> ::= <循环变量名> <关系运算符> <数字>
<关系运算符> ::= < | <= | > | >= | == | !=
<循环变量修改> ::= <循环变量名> = <表达式>
<输出语句> ::= printf(<字符串>, <表达式>);
<字符串> ::= " <字符>* "
<字符> ::= <字母> | <数字> | 空格 | 标点符号
其中,<变量类型>表示变量的数据类型,可以是int或double;<变量名>表示变量的名称,由字母和数字组成,且首字符必须为字母;<表达式>表示数学表达式,可以包含数字、变量和运算符;<循环语句>表示for循环,包括循环变量声明、循环条件和循环变量修改;<输出语句>表示输出语句,包括一个字符串和一个表达式,其中字符串用双引号括起来,表达式可以是数字或变量。
阅读全文