精华内容
下载资源
问答
  • 今天我们一起来研究研究C语言for循环里面的i的作用域问题: for(int i=0;i<5;i++) { for(int i=0;i<3;i++) printf("5\t"); printf("\n"); } 初次看到这种写法的时候肯定会有很大的困惑,比如说第...

    刚刚接触C语言或者还不怎么熟练的同志们可能会遇到一些关于变量作用域的问题。
    今天我们一起来研究研究C语言中for循环里面的i的作用域问题:

    for(int i=0;i<5;i++)
    	{
    		for(int i=0;i<3;i++)
    			printf("5\t");
    		printf("\n");
    	}
    

    初次看到这种写法的时候肯定会有很大的困惑,比如说第一次大循环时i是0,但等它结束,由于内层循环结束时i值为2,那是不是第二次大循环时i++就等于3了呢,然后内层循环就无法进入,这样想合情合理,因为前面说到变量值一旦被修改后就会覆盖原来的值,但在for循环里面的i就不一样了(仅限与在for内部定义,在外部定义就不满足)。
    下面看看运行结果:

    5 5 5 
    5 5 5 
    5 5 5 
    5 5 5 
    5 5 5 
    

    再来看一个例子:

    	int ar[5]={1,2,3,4,5};
    	for(int i=0;i<4;i++)
    	{
    		printf("\n");
    	}
    	printf("%d",ar[i]);
    

    目的是输出输出数组得第个元素值,然而会发现报错:
    在这里插入图片描述
    因为i是在for循环内部申明的,它的作用域仅限于循环内部。
    稍作修改:

    	int ar[5]={1,2,3,4,5};
    	int i;
    	for(i=0;i<4;i++)
    	{
    		printf("\n");
    	}
    	printf("%d",ar[i]);
    

    输出:

    5
    
    展开全文
  • for(i=a[min];i[min]+total;i++) { int flag=0; for(j=0;j;j++) if(a[j]==i)flag+=1; if(flag==0)x=i; else if(flag==2) y=i; } printf("%d %d",x,y); system("pause"); return 0; } ``` 这个题目关键是...
  • C语言的for(;;)循环

    千次阅读 2018-01-24 09:48:02
    很久没接触C语言,在读程序时候遇到for(;;)循环,觉得可能是无限循环,就查了一下,真是。 for()是典型循环结构,然后()里面添加是循环条件,而for(;;)中没有循环条件,所以就是无条件循环,就是只能通过...

    很久没接触C语言,在读程序的时候遇到for(;;)循环,觉得可能是无限循环,就查了一下,真的是。

    for()是典型的循环结构,然后()里面添加的是循环条件,而for(;;)中没有循环条件,所以就是无条件循环,就是只能通过循环体中的内容来跳出循环。

    展开全文
  • While循环和for循环在C语言里面经常使用,需要讲地方不多,可以一句话带过。加上while循环和for循环是可以相互完全替代,所以这里主要讲一下while循环()括号里面可能是何种实现方法,从API角度来看待while...
  • #include #include typedef struct node{ int vex; struct node *link; }TD,JD; // TD 和 JD 是结构体 node 声明变量,而且是全局变量 ...void creatlist(TD* ad, int n) ... for(k = 1;k;k++) ad[k].lin
    #include<stdio.h>
    #include<stdlib.h>
    typedef struct node{
    	int vex;
    	struct node *link;
    }TD,JD;
      //  TD 和 JD 是结构体 node 声明的变量,而且是全局变量
    
    void creatlist(TD* ad, int n)
    {
    	JD *p;
    	int i,j,k;
    	for(k = 1;k<=n;k++)
    		ad[k].link = NULL;
    	scanf("%d%d",&i,&j);
    	while(i>0 && j>0)
    	{
    		p = (JD*)malloc(sizeof(JD));   // 生成一个节点
    		p->vex = j;
    		p->link = ad[i].link; // 把生成的节点的指针域赋值为 ad[i].link (即:NULL)
    		ad[i].link = p;   // 把第j个节点插入到头结点 i 的后面(并且此时,该节点的指针域为:NULL,便于后面的节点的插入)
    		// 这里的第 j 个节点是相当于和 i 相连的第一个节点
    		p = (JD*)malloc(sizeof(JD));  // 生成一个节点
    		p->vex = i;
    		p->link = ad[j].link; // 把生成的节点的指针域赋值为 ad[j].link (即:NULL)
    		ad[j].link = p;  // 把第i个节点插入到头结点 j 的后面(并且此时,该节点的指针域为:NULL,便于后面的节点的插入)
    		// 这里的第 i 个节点是相当于和 j 相连的第一个节点
    		scanf("%d%d",&i,&j); // 再次输入下一条边的两个顶点的序号,如果第一次输入的是(1,2),那这一次可以为(1,3)
    	}
    }
    
    int main()
    {
    	TD ad[3];
    	creatlist(ad, 3);
    	printf("%d\n",ad[1].vex);
    	system("pause");
    	return 0;
    }
    

    展开全文
  • for(i=0;i<3;i++) scanf ("%s%s%s" ,string[20],str[0],str[1]); //从键盘上输入字符串 if(strcmp(str[0],str[1])>0) strcpy(string,str[0]) ; else strcpy(string,str[1]) ; //将...
  • c语言for循环

    2018-11-21 23:18:01
    C语言里面,循环语句有好多种,比如for语句,do...while,while。在我们日常使用中,for语句是使用最多。而在for语句中,最应该注意就是取值问题。 1. for(a=1;a&lt;9;a++) 这只有一个for,...

    在C语言里面,循环语句有好多种,比如for语句,do...while,while。在我们的日常使用中,for语句是使用的最多的。而在for语句中,最应该注意的就是取值的问题。

    1.

    for(a=1;a<9;a++)

    这只有一个for,比较好理解。a=1,小于9,然后执行下面的循环体,执行完循环体之后再执行a++,注意是执行完循环体之后再执行a++。这样循环,直到a=9,跳出循环。

    2.

    下面说一下for循环的嵌套,在这里面取值的问题。这里拿九九乘法表来举例:

    #include<stdio.h>

    int main()

    {

    int i,j;

    for(i=1;i<=9;i++)

    {

    for(j=1;j<=i;j++)

    {

    printf("%d*%d=%d ",i,j,i*j);

    }

    printf("\n");

    }

    return 0;

    }

    第一个for,i=1,小于等于9,进入下一个for循环j=1,小于等于i=1,然后执行printf语句,打印出乘法。直到j<=i不符合时,执行第一个for里面的i++。

    然后i=2,小于等于9,进入嵌套的for语句,此时应注意,进入嵌套的for语句之前,j的值为2,进入嵌套的for语句之后,因为有j=1,所以j重新赋值,j又等于1.一直循环,直到j=3,不符合j<=i=2,跳出嵌套的for语句,然后在执行第一个for语句的i++。后面的循环就不在赘述了。应当注意的是,每次开始执行嵌套的for语句时,j都是1,然后循环。

    3.

    关于for语句的使用,还应当注意的是大括号的使用。例如:

    int i,j,sum=0;

    for(i=0;i<101;i++)

    {

    sum=sum+i;

    printf(“%5d”,sum);

    }

    在输出之后,你会得到101个数字,但是如果你没有用大括号把for循环里的两个语句括起来的话,最后打印出来的只有5050这一个数字,因为for语句的循环只执行到了“sum=sum+i”这个语句,没有执行printf语句。总的来说,不加大括号的话,for语句的循环只会循环跟在for语句后面的那一个语句。关于大括号的使用,在if语句里也是类似的道理。

    4.

    关于for语句分号的使用。for后面的括号里有三个表达式,但for语句的特点是,这三个表达式你都可以省略,但这没啥意义。

    但是,当你省略第一个表达式时,分号不能丢,如:

    i=1;

    for(;i<10;i++)

    这样写才是合法的。总之,括号里的表达式可以省,但分号不能省,如:

    i=1;

    for(;;)

    printf(“%d”,i);

    这样是合法的,但是这没啥意义。

    然后是for后面的括号的末尾不能加分号。

                                               

     

     

    展开全文
  • 关于C语言for循环语句的使用 for(表达式1;表达式2;表达式3) { 循环语句 } 表达式1 :为初始化部分,用于初始化循环变量的。...意味着假,也就是判断语句为假,也就不执行循环体里面的语句了。 ...
  • c语言编写风格 for SWU

    2014-03-11 22:29:29
    一:赋值语句"="左边"table键" 右边"空格"、for 循环条件里面的"="号则不需要、for循环中的 ";" ","后加一个空格 //赋值语句 a = 100; //for 循环 for(i=1; i; i++){ ......... } 二:if,for,while 语句的"{...
  • for (i = 0; i ; i++) { do { count++; printf("student %d:", count); scanf("%s%s%d", (stud + i)->name, (stud + i)->num, &(stud + i)->score); if ((stud + i)->score || (stud + i)-...
  • C语言编程中很多时候会用到for语句循环,这就需要对for循环里面所涉及变量赋值,有时赋值赋不对则会造成结果错误。  下面就我在编程中所涉及问题进行详解。  例如:打印所有不超过256,其平方具有对称...
  • 本篇文章主要是聊一聊有趣逗号运算符,学C语言的萌新们,应该能感觉到C语言有两个有趣运算符,一个是赋值运算符(=),另一个就是逗号运算符(,)。在许多其他高级程序语言中并没有这个运算符(比如Java中,它...
  • #include #include int main(int argc, char *argv[]) { while(1) //为什么while(true) 编译器就报错?????我用是Dev c++ for(i=0;i; i
  • 我想方法是定义一个变量x=1,然后在for循环里面,每一次x++存入数组 代码: ``` #include<stdio.h> int main() { int a[2][2]; int i,j,x=1; for(i=0;i;i++) for(j=0;j;j++) { a[i][j]=x; x...
  • Dev C++ 中C语言不能使用 for(int i=0; ; ) 这样声明循环控制变量 i 不允许直接在for( ; ; )中声明变量,报错: 原因: C99标准以前C标准是不支持临时变量在 for 循环中定义。 解决方法: 先声明变量后使用...
  • You can assume that 1 ,C , Y , for all pairs of coordinates (x,y), 0 , both for lightbulbs and column center locations. All radii of the columns will be positive. Finally, no two columns will overlap...
  • for循环 for 循环语句的一般形式为: for (表达式1; 表达式2; 表达式3) { 语句;...1) 表达式1、表达式2和表达式3之间是...所以如果在后面加个分号,那么 for 循环就只能控制到这个分号,下面大括号里面的语句就不属...
  • C语言 找出一句话里面的最长的单词

    千次阅读 多人点赞 2018-11-22 22:07:52
    C语言:找出一句话里面的最长的单词 我是一名在校大学生,初次写博客,希望各位大佬不喜勿喷,这个小程序,仅供参考,希望对大家有所帮助。 首先,分析题意,我们需要将一句话里面的单词数量统计出来,才能比较...
  • Looking for python27.dll Building msvcr library: "C:\Python27\libs\libmsvcr90.a" (from C:\Windows\winsxs\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_750b37ff97f4f68b\msvcr90.dll) ...
  • a[]={7,2,4,3,5,6}; int a,b; for(int i=0;i;i++){ if(a[i]%2==0){ ...cout奇数和是:";...原来我是这么做,但现在是要求在for里面不用if来实现,我是初学者,在网上看了半天也没看明白怎么不用if来实现。
  • ibonacci数列递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。...for(i=1;i;i++) { sum=a1%M; t=a2; a2=(a1+a2)%M; a1=t; } printf("%d\n",sum); } ``` 但是不通过,请问问题出在哪里?
  • As usual, each client of the bank is identified by a positive integer K and, upon arriving to the bank for some services, he or she receives a positive integer priority P. One of the inventions of ...
  • 比如一下删除字符串中指定... for(i=0;a[i];++i) { count=0; for(j=i;a[j];j++) { if(a[j]==ch) { k=0; count++; } else k=1; if(k==1) a[j-count]=a[j]; } a[j-count]='\0'; } puts(a); return 0; }
  • c语言for'循环执行顺序

    千次阅读 2018-03-21 23:13:17
    如果成立执行for循环里面的循环体(执行完一次如果没有终止则这时就执行语句2(一般为i++)如果循环里出现break,则退出循环不执行语句2);条件语句不成立则退出循环,执行下一条语句。 举个例子: int m,j=1; ...
  • c语言

    2019-10-23 22:49:40
    1。嵌套循环:里面的是变化快的。 2。右对齐:比如说4个字%4d 左对齐%-4d(加个负号) 3。循环次数不确定,用whlie 确定,用for 4.先加在判断用do。。。。while 先判断再加用while ...
  • 这里是修真院前端小课堂,每篇...若在for循环中,还会执行下一次循环吗?】一、背景介绍什么是return?return 语句作用是从当前函数退出,并从那个函数返回一个值。 用 return 语句来终止一个函数执行,并返回 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 527
精华内容 210
关键字:

c语言里面的for

c语言 订阅