C--控制语句循环例子

C的三种循环while、for和do  while

先说一下scanf()函数的返回值问题

当scanf("%d,%d",&a,&b);如果用户正确输入了俩个整形变量,那么scanf的返回值为2

当scanf("%d,%d,%d",&a,&b,&c);如果用户正确的输入三个整形变量,那么scanf的返回值为3.

/*对用户输出的整数求和*/
#include <stdio.h>

int main(void)
{
    long num;
    long sum=0;//把sum初始化为零
    int status;
    
    printf("Please enter an integer to be summed,q to quit!\n");
    status=scanf("%1d",&num);
    while(status==1) //==的意思是等于  
    {
        sum+=num;
        printf("next!q to quit!\n");
        status=scanf("%1d",&num);
    }
    printf("All is to %1d",sum);
    getchar();
    getchar();
    getchar();
}

 for循环

经典for循环之九九乘法表:

/*经典for循环九九乘法表*/

#include<stdio.h>

int main(void)
{
    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");
    }
    getchar();

}

 经典for循环之冒泡排序法

/* 经典for循环之冒泡排序法*/

#include<stdio.h>

int main(void)
{
    int arr[4]={4,5,1,2};     //定义数组 int 数组length为4
    int i,j,temp;
    for(i=0;i<=3;i++)  
    {
        for(j=0;j<3;j++)
        {
            if(arr[j]>arr[i])
            {
                temp=arr[i];     //数据交换
                arr[i]=arr[j];
                arr[j]=temp;
            }
        }
    }
    for(i=0;i<4;i++)  //数组下标从0开始如果不是如果i=1--i=4那么将没有arr【4】将会输出12506....
    {
        printf("%d ",arr[i]);
    }
    getchar();
    

}

 for循环的灵活性。例如,i--,i+12,i*i,i*11,等等。

do while:退出条件循环

while循环和for循环都是入口条件循环,在每次执行loop前进行判断,如果条件不满足就不会执行循环体内的代码块。

为了确保能够在执行循环之后判断条件,do while 可以做到这一点。

 

--数组

/* 接收用户输入的数据存放到数组中并打印*/
#include<stdio.h>

int main(void)
{
    
    char strr[5]={0};
    int i=0;
    
    for(;i<5;i++)
    {
       scanf("%c",&strr[i]);  //我不用&的时候会报错,VC6.0.有待以后解决。
       getchar();

    }
    for(i=0;i<5;i++)
    {
       printf("%c",strr[i]);
    }
    getchar();
}


返回值函数,略。

 

posted @ 2014-05-15 17:22  crystal_C++  阅读(353)  评论(0编辑  收藏  举报