C语言 求大虾们帮我分析这段代码 帮我详细介绍一下这个

作者&投稿:巨苗 (若有异议请与网页底部的电邮联系)
C语言的小程序的解析,帮我分析下吧,大虾们!~

n%10 是n除以10取余数 如果n=12那么n%10=2
因为你定义的n是INT类型的,所以输出n%10后,它执行n=n/10,正因为N是INT类型的,所以N/10是取整数部分的,如果N=13,那么N/10=1
当你输入小于0的N时,它不满足WHILE条件,所以一次都不循环
当你输入大于0的N时,它才开始循环,一旦N小于10了,它就跳出循环了
因为N小于10,那么它除以10的结果的整数部分一定为0,就不满足WHILE的条件了
现在懂了吗?

最简单的方法就是使用printf函数。
不过我估计老师是让使用循环输出的吧。使用循环输出代码如下:
main()
{ int i,j;
for(i=0;i<7;i++)
for(j=0;j<4;j++)
{if(j==0|2|4|6) printf("* ");
else printf("
");
}
}

首先S是个字符型指针,它表示,这个字符串的起始字符所在的内存单元,(但那个J字符型数组在这里实干什么的好像有些问题)。这个程序好像有些问题啊,我给它改一下啊(好久没弄C了不知道对不对啊):
char *s = "\n\n ****欢迎使用学生成绩管理系统****\n\n";
int i=0;
for(i=0;(s+i)!='\0';i++){
printf("%c",(s+i));
Sleep(50);
}
也就是说,首先S标明那个字符串的起始字符在内存中的地址,然后用for循环,每次让s这个指针向后移动一位(也就是指向下一个字符的地址),然后用printf将这个内存单元上的字符输出到控制台,然后由于有Sleep(50)所以延迟50ms,再进行指针的下一次移动,字符的下一次输出,所以你看到的就是,字符一个一个的跳出来了。

目的是输出s这个字符串里面的内容
在for循环里面printf它每次只输出s里面的一个字符,每当输出一个字符后就睡眠50毫秒
for循环先用i=0指向s的第一个字符,输出后睡眠50毫秒,然后执行i++使得指向第二个字符,接着循环条件判断还没达到s的末尾,因此继续输出,这样处理完每个字符~

for循环里, printf("%c",s[i]);
Sleep(50);//延时50毫秒
表示打印一个字符,延时50毫秒,直至遇到字符串的结束标识符"\0"为止!
延时50毫秒(注意是毫秒)效果就是 那几个字是一个一个出来 !

*S是一个指向字符变量的指针。后面是一个字符串常量,在C语言中用字符串的首地址来代表字符串。也就是*S现在指向这个字符串的首地址。
再看下面的循环,S[i]在系统中的处理方式是S+i

不等于字符串结束符‘\0’一直循环
每一次循环先显示出一个字符,然后睡眠50毫秒,
就是什么也不干,等了50毫秒才结束本次循环进入下次


荔蒲县15664557447: C语言 跪求大吓们 帮我分析下这段代码
蒸届减味: 没别的了...就这功能 数组名s就是这个数组的指针,指向第一个元素'\n'的地址.s+1指向第二个.s[1]的值也是第二个字符.

荔蒲县15664557447: 求c语言大神帮我分析下下面这个程序
蒸届减味: 应该对你有帮助的!这个函数遇到输入$才能打印一个$出来,否则就会继续调用自己,还是要判断$,所以直到出现美元符号,函数才能结束.c=getchar()这个函数每次只能取一个字符.也就是说你虽然输入了ABC$DEF这么多,如果只有一个c=getchar()的话,c里面只能存第一个字符,就是A.你自己画一画,没调用一次fun()就有一个字符被取走,直到美元符号.再把之前的用printf()就打印出来了结果就是$CBA

荔蒲县15664557447: 那位能解释一下这段c语言代码 -
蒸届减味: 这显然是面向某种对象(可能是8位单片机,由P0&0x80看出,其基本位是8位,51单片机可能性大)编写的程序.bit llda() /*定义位函数llda()*/{ bit a; ...

荔蒲县15664557447: 谁能帮我解释下这段C语言代码 -
蒸届减味: 是个延时程序.#include <REGX52.H>#include "LCD1602.h"#include "DS1302.h"// 头文件.void Delay1ms(unsigned int count) { unsigned int i,j; for(i=0;i<count;i++) for(j=0;j<120;j++); }// 延时函数, 就是让计算机 进行 count * 120 次运算...

荔蒲县15664557447: 大家帮我分析一下这段C语言程序语句 -
蒸届减味: int data[10]; 应该是int data[100]; //100个整型的数组用来存放随机的1...

荔蒲县15664557447: C语言 请帮我描述一下,这段代码的意思
蒸届减味: if( (year%4==0&&year%100!=0||year%400==0) && month==2 ){day=29;} printf("%d\n",day);把代码这样整理下,if中的第一个括号肯定是先计算的,year%4==0 表示 year能被4整除,year%100!=0表示 year不能被100整除,year%400==0 表示能被400整除,所以连起来就是这个年份能被4整除且不能被100整除,或者能被400整除,只要满足其中一个就是true,当时true的时候,就会去判断month是不是等于2,如果是是,那么就是true,进入判断,天数为29,如果整个if的条件不是true,就跳过day=29这个代码

荔蒲县15664557447: 求大哥大姐帮我解释一段C语言小代码,谢谢! -
蒸届减味: 这个知识点是文件的内容FILE * 是文件指针 (类型) p_file 就是指针的名字 就像 int a int(就是类型)fopen 返回的是一个文件指针 所以用p_file 保存a.txt 的地址 FILE *fopen(const char *path, const char *mode);你 man 3 fopen 就会有结果

荔蒲县15664557447: 问一道c语言试题,大虾帮我解释一下输出结果哦!#include&
蒸届减味: 你的代码处理过程和结果如下: 1、首先声明一个文件指针,以"w+"读写文本文件方式,打开一个文件data.dat. 2、for循环中,i从1到5,向文件中写入1至5五个整数.当满足条件if(i%3==0)时,即每输入三个整数后写一个换行符. 3、rewind(fp);函数是将文件指针重新指向文件首. 4、fscanf(fp, "%d%d", &k, &n); 从文件首开始,得到(输入)文件中的两个整数给k和n变量,就是1和2. 5、printf("%d %d\n", k, n);显示输出k和n变量. 6、fclose(fp); 关闭文件指针. 输出结果见下图:

荔蒲县15664557447: 求c语言大神,帮我分析下列程序的结果. -
蒸届减味: 结果是1;因为你在外层循环里每次都将sum的结果置为0;只有最后一次的结果才会被打印:望采纳!

荔蒲县15664557447: 可以帮我把这段c语言代码详细解释一遍吗,关于写入信息的.谢谢! -
蒸届减味: int writeFood() // 定义函数{ int i; FILE* p = fopen("d://food.txt", "w+"); // 打开文件foo...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网