谁给我解释一下以下c语言代码!ps:新手,求大神指教 一道c语言编程题,求大神指教!

作者&投稿:尤露 (若有异议请与网页底部的电邮联系)
#include <stdio.h>
main() {
    char string[81]; //分配保存字符串的空间
    int i,num=0,word=0;
    char c;
    gets(string);     //获取键盘输入的字符串
    for(i=0;(c=string[i])!='\0';i++){  //一个个取出字符,直到字符串结束
        if(c==' ')word=0;   //如果碰到空格,表明单词结束,准备下一个单词
        else if(word==0){    //如果到下一个单词了  num++ 计数
            word=1;
            num++;
        }
    }
    printf("there are %d words in the line.
",num); //输出num 即为单词数
}


这个程序是用来判断一个字符串里有多少个单词。
方法就是每次读取一个字符,直到遇到'\0'结束,因为字符串都是以'\0'为结尾的。

每次读的字符如果是空格,就说明一个单词结束。
如果字符不是空格,说明当前这个字符是一个单词中的字母,继续向下读。
每读到一个单词,num就加1 ,最后输出单词的数量。

#include <stdio.h>   // 调用库函数
main()               // C语言编写的入口主函数

   {
    char string[81]; // 定义个字符型数组长度81个元素,下标注:0-80 
    int i,num=0,word=0; //定义使用整型变量3个
    char c;             // 定义字符型变量一个
    gets(string);       // 接收键盘输入的字符串,按enter结束输入。
    for(i=0;(c=string[i])!='\0';i++)//循环,判断是否到了字符串的尾部以结束
       {
        if(c==' ')word=0;// 如果接收到空格,word变量清零
        else 
        if(word==0)   // word 变量碰到空格后,word赋值为1,可以判断出,word是个标志位的变量符号。
        {
            word=1;
            num++;   //统计输入以空格隔开的字符串的组数
        }
    }
    printf("there are %d words in the line.
",num); //输出统计字符串的组数
        }

// 功能就是统计键盘输入的一串字符串,查找其中多少组字符串,

// 判断的依据:字符串组一组以 “空格”隔开。碰到 Teb制表符隔开的不算Teb制表符前后算1组。



一道c语言编程题,求大神指教!~

#include void printdigits( int n );int main(){int n;scanf("%d", &n);printdigits(n);return 0;}void printdigits( int n ){if(n){printdigits(n/10);printf("%d
",n%10);}}

主函数已经写出,只要补充函数的内容就可以了:
void printdigits(int n){int i=0,j,a[100];while(n){a[i]=n%10;n/=10;i++;}for(j=i-1;j>=0;j--)printf("%d ",a[j]);}

请大家帮忙解释一下下面这段C语言程序的含义 急急急!
答:这是51单片机的代码,就是用P1的第7位等于低电平时来控制P2的第0位那个引脚不停的0和1转换!include<AT89X51.H> include<intrins.h> bit flag;unsigned char count;void dely500(void) //延迟函数调用_nop_(),_nop_()表示停1个机器周期 { unsigned char i;for(i=250;i>0;i--){ ...

c语言求高手。急急急。。。请帮忙一句一句的解释一下这个代码。谢谢...
答:char a[10],*p=a;//定义一个数组a有10个元素和指针p,并将p指向数组a。printf("enter a command!\nEnter 'quit' to quit.\nFor help,Enter 'help'.\n");//打印提示信息:请输入命令,输入quit退出,如数help是帮助。c1://定义表示 用来循环 printf("c:\>"); //打印c:,类似一个...

c语言 这个程序怎么解释
答:(unsigned long) p + 0x1 = 0x100001 p的值是一个地址值为0x100000,(unsigned long)p把p转换为一个无符号长整形数值,其加1之后,就是0x100001 (unsigned int*) p + 0x1 = 0x100004 p的值是一个地址值为0x100000,(unsigned int*) p把p转换为无符号长整形的指针,而c/c++语言中,一...

求代码解释(c语言的)
答:int insertLink(LinkList *head, int i,ElemType e) /*插入一个元素e到上面你创建链表中,位置 为j*/ {LinkNode *p, *s;int j;p=head; j=0;while(p && j<i-1) 寻找插入的位置 {p=p->next;j++;} if(!p||j>i-1){printf("无法插入");return 0;} s=(struct LinkNod...

C语言%p的含义
答:p是打印地址的, %x是以十六进制形式打印, 完全不同!另外在64位下结果会不一样, 所以打印指针老老实实用%p .测试代码 :include<stdio.h> int main(){ int arr[5] = {10,20,30,40,50};int i = 0;printf("数据:\n\n");printf("十进制表示的数据:\n");for(i = 0 ; i < 5 ...

谁能解释一下下面这个C语言程序不?
答:void max_min_value(int array[],int n){ int p,array_end;array_end=array+n;max=min=*array;//将当前最大和最小值定为数组第一个数 for(p=array+1;p<array_end;p++)//依次判断剩下的九个数 if(*p>max) max=*p;//如果*p大于当前最大值,则将它赋给当前最大值 else if(*p<min...

C语言编码问题2: 其中P+=1,p1+=1是什么意思? *p2!='\0' 有是什么意思...
答:p != '\0' 是指当字符串结束时跳出 因为字符串结尾时以'\0'结尾的。p+=1 p1+=1 都是指针往后移。操作方法如下:1、首先打开Dev C++软件,新建一个C语言的控制台项目,如下图所示。2、然后在C语言中*是指针与文件的表示符号。3、接着在C语言中c[ ]是指数组的表达方式。4、指针数组的...

C语言编码问题2: 其中P+=1,p1+=1是什么意思? *p2!='\0' 有是什么意思...
答:p != '\0' 是指当字符串结束时跳出 因为字符串结尾时以'\0'结尾的。p+=1 p1+=1 都是指针往后移。操作方法如下:1、首先打开Dev C++软件,新建一个C语言的控制台项目,如下图所示。2、然后在C语言中*是指针与文件的表示符号。3、接着在C语言中c[ ]是指数组的表达方式。4、指针数组的...

C语言,求解释代码是什么意思
答:p+strlen(q)的意思是p字符串数组增加q的字符串长度,strcpy(p+strlen(q),q)的意思是将q的内容复制到p+strlen(q)中去。

c语言 p=5!正确的代码
答:include <stdio.h>int main(){int p=1,i,n=5; for(i=2;i<=5;i++) p*=i; printf("p=%d\n",p); return 0;}