-
C语言关键字 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while查看全部
-
1.局部变量就是在方法中重新定义一次,eg:void a(){int x;} 2.如果没有在局部中再次定义的话,即所变化的为全局变量,所以该全局变量会变化,输出的值也变了查看全部
-
借问题给大家理解递归 这个回答我只想帮助后来跟我一样 思考了一阵也看了网络上的很多资料 但是根本没有理解这个式子如何得出的结果 我会把本代码递归的计算方法打出来 因为递归空想比较难理解(下面这段代码如何去理解我感觉理解不了的只有一句理解不了) #include <stdio.h> /* 定义获取单词数量的函数 */ int getWordNumber(int n) { if(n == 1) { return 1; //第一天只会1个单词 } else{ return getWordNumber(n-1)+n ; //到第N天会的单词数量 } } int main() { int num = getWordNumber(10); //获取会了的单词数量 printf("小明第10天记了:%d个单词。\n", num); return 0; } 我们吧getWordNumber简称为G 初始值设置为10 那么整个式子是这样计算的 G(n -1)+ n 这一行等同于一个公式 G(10-1)+10 + G( 9-1)+ 9 + G( 8-1)+ 8 + G( 7-1)+ 7 + G( 6-1)+ 6 + G( 5-1)+ 5 + G( 4-1)+ 4 + G( 3-1)+ 3 + G( 2-1)+ 2 + G( 1)+ 1 其实这一句getWordNumber(n-1)+n 就是达到了从10开始跟自己递减1的数相加一直到n的值变成1 有的同学可能也会有一个误区为什么会n=1会跳出 递归原因是倒着推到了第一天没有记单词了不存在所以这里有一个唯一跳出条件 (私人理解大佬勿喷,至少在这个题目里边我觉得这样理解即可)查看全部
-
i=1 j=1,2,3,4 输出四个空格 k=0,输出一个* 其结果为----* i=2 j=2,3,4 输出三个空格 k=0,1,2 输出三个* 其结果为---*** i=3 j= 3,4 输出两个空格 k=0,1,2,3,4 输出五个* 其结果为--***** i=4 j=4 输出一个空格 k=0,1,2,3,4,5,6, 输出七个* 其结果为-*******查看全部
-
把void say(char string)改成void say(char *string) 数组string[]的数组名string是一个指向该数组的指针,如果是char string,就是一个char类型的变量,与char指针不兼容查看全部
-
/* 首先i=1,扫描第一行,j=1<5,输出4个空格,k=0<2*1-1=1,输出1个*,换行; 然后i=2,扫描第二行,j=2<5,输出3个空格,k=0<2*2-1=3,输出3个*,换行; 然后i=3,扫描第三行,j=3<5,输出2个空格,k=0<2*3-1=5,输出5个*,换行; 最后i=4,扫描第四行,j=4<5,输出1个空格,k=0<2*4-1=7,输出7个*,结束。 */查看全部
-
谭浩强那本书中说 对静态局部变量是在编译时赋初值的,即只能赋一次值。那么这句话怎么理解? 赋初值 静态局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次函数调用时,该变量已有值,就是上一次函数调用结束时的值 静态局部变量在静态存储区分配存储单元,在程序的整个运行期间都不释放。静态局部变量是在编译时赋初值的,即只赋初值一次。 意思就是 在程序的整个运行期间,静态局部变量只会赋一次初始值(只赋初值一次),不是说不能改查看全部
-
为什么要 return 0; 答:1、因为主函数的类型为int,因此就必须要返回一个整型数;(而如果是void型,则可以不写return,但这时即使写了也无法返回数值的) 2、return其实还有个退出该程序的作用。查看全部
-
stdio.h,头文件,包含stdio.h头文件的意思是库函数,标准输入输出函数 include 称为文件包含命令,其意义是把尖括号""或引号<>内指定的文件包含到本程序中,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h 而stdio为standard input output的缩写,意为“标准输入输出” 预处理命令还有其它几种,这里的include 称为文件包含命令,其意义是把尖括号""或引号<>内指定的文件包含到本程序来,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h。因此也称为头文件或首部文件。 C语言的头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。查看全部
-
#include <stdio.h> int main() { int score = 1625; //完善一下代码 if(score>=3000) { printf("最强王者"); } else if(score>=2500) { printf("超凡大师"); } else if(score>=2000) { printf("璀璨钻石"); } else if(score>=1700) { printf("华贵铂金"); } else if(score>=1450) { printf("荣耀黄金"); } else if(score>=1200) { printf("不屈白银"); } else { printf("英勇黄铜"); } return 0; }查看全部
-
switch后()中的表达式只能是整数型或字符类型,所以switch(score = score/10)不太符合要求,应该在switch语句前加一行代码,score = score/10;。 ba查看全部
-
定义变量:①数据类型 变量名 ②数据类型 变量名,变量名; 赋值方式:①先声明再赋值 int x x=10 ②声明的同时赋值 int x=10查看全部
-
int a,b,c a=10 10赋值给a b=7 7赋值给b c=a+b(17)计算a+b的值赋给c 复合赋值运算符就是在简单赋值符“=”之前加上其它运算符构成,例如+=、-=、*=、/=、%=。 int a=3; a +=5; 分析:定义整型变量a并赋值为3,a += 5;这个算式就等价于a = a+5; 将变量a和5相加之后再赋值给a 注意:复合运算符中运算符和等号之间是不存在空格的。 #include <stdio.h> int main() { int x = 10; int y = 10; //使用简单赋值语句实现x乘以2。 x=x*2; //使用复合赋值语句实现y乘以2。 y*=2; printf("x=%d\n", x); printf("y=%d\n", y); return 0; } 嗯哼:赋值给x,y 意思是运算后给x,y.查看全部
-
在最新的C标准中,main函数前的类型为int而不是void查看全部
-
空格就是。。把i赋给j,这样每次一个大循环j都有一个基数 在这个j的基数上做判断j < 5,然后根据j的数值决定打印个数。当i = 1时,j = 1,判断条件j < 5,就是循环4次,空格打印4个,当i自加到2时,j也等于2, 判断j < 5 ,在j = 2 时 循环3次 打印3个空格 依次类推查看全部
举报
0/150
提交
取消