循环
1、while——
while(表达式)
循环语句;
2、for(表达式1;表达式2;表达式3)
循环语句;
for循环语句中三个表达式都可以省略——即判断省略处,恒为真。
for(i=2; i = 0; i++)//——表达式2,将0赋值给i;0为假,则不满足表达式2;不进入循环。
3、do
循环语句;
while(表达式)
/ /此循环先进行一次循环,再执行判断条件。
1——输入密码(字符串),再要求确认是否输入此密码//
当输入密码时,会输入手打的密码和手打的一个回车;此时需要将回车(‘\n')字符从内存中拿走,否则,下面确认密码会将'\n’认为你输入的(Y/N),导致确认失败。
增加while循环原因:scanf读取时,若输入密码有空格,即(12345 ABHJ),scanf只会读取空格前面的字符串
int main()
{
int reg = 0;
int ch = 0;
char password[20] = { 0 };
printf("输入密码\n");
scanf("%s", password);//输入密码
while ((ch = getchar()) != '\n')
{
;
}
printf("确认?Y/N\n");
reg = getchar();
if (reg = 'y')
{
printf("登录成功");
}
else
printf("登录失败");
return 0;
}
2——循环实现1-100中,输出9的个数:
int main()
{
int a = 0;
int b = 0;
int i = 0;
int c = 0;
scanf("%d%d", &a, &b);
/*printf("%d\n%d", a, b);*/
if (a < b)
{
for (i = 1; i <= a; i++)
{
if (a % i == 0 && b % i == 0)
{
c = i;
}
}
}
else
{
for (i = 1; i <= b; i++)
{
if (a % i == 0 && b % i == 0)
{
c = i;
}
}
}
printf("最大公约数为%d\n", c);
return 0;
}
3——写出1-100中3的倍数的数
int main()
{
int i = 0;
/*int c = 0;*/
for (i = 0; i < 101; i++)
{
int c = i % 3;
if (c == 0)
{
printf("%d\n", i);
}
}
return 0;
}
4——将“welcome to C!!!”从左右两边一个一个字符的替换
“##############”(此代码写的有漏洞)
int main()
{
int i = 0;
int a = 0;
int b = 0;
char arr[] = {"wellcom to C !!!!"};
/*printf("%s", arr);*/
int sz = sizeof(arr) / sizeof(arr[0]);
int right = sz - 1;
int left = 0;
int c = sz;
/*printf("%d", sz);*/
while (left < right)
{
for (a = 0; a <= left; a++)
{
printf("%c", arr[a]);
}
left++;
for (i = 1; i < sz - 2; i++)
{
/*if (left == right)
break;*/
printf("#");
}
sz = sz - 2;
for (b = right; b <= c; b++)
{
if (left == right)
{
for (b = right; b <= c - 1; b++)
{
printf("%c", arr[b]);
}
break;
}
printf("%c", arr[b]);
}
right--;
printf("\n");
}
/*if (sz%2 == 1)
printf("%s", arr);*/
return 0;
}