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=;//把sum初始化为零
int status; printf("Please enter an integer to be summed,q to quit!\n");
status=scanf("%1d",&num);
while(status==) //==的意思是等于
{
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=;i<=;i++)
{
for(j=;j<=i;j++)
{
printf("%d*%d=%d ",i,j,i*j);
}
printf("\n");
}
getchar(); }
经典for循环之冒泡排序法
/* 经典for循环之冒泡排序法*/ #include<stdio.h> int main(void)
{
int arr[]={,,,}; //定义数组 int 数组length为4
int i,j,temp;
for(i=;i<=;i++)
{
for(j=;j<;j++)
{
if(arr[j]>arr[i])
{
temp=arr[i]; //数据交换
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for(i=;i<;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[]={};
int i=; for(;i<;i++)
{
scanf("%c",&strr[i]); //我不用&的时候会报错,VC6.0.有待以后解决。
getchar(); }
for(i=;i<;i++)
{
printf("%c",strr[i]);
}
getchar();
}
返回值函数,略。