练习1:编写代码实现,模拟用户登录,并且只能输入三次密码,密码正确则登录成功,三次都错误将退出程序。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <Windows.h>

int main()
{
char password[20] = { 0 };
int i = 0;
for(i = 1;i <= 3;i++)
{
printf("请输入密码:");
scanf("%s", password);
if (strcmp(password, "123456") == 0)
{
printf("密码正确,登录成功!\n");
break;
}
else
{
printf("密码错误");
Sleep(500);
system("cls");
}
}
if (i > 3)
{
printf("登录失败,退出程序!");
}
return 0;
}

练习2:写代码将三个数从大到小输出

int main()
{
int x = 0;
int y = 0;
int z = 0;
int i = 0;
scanf("%d%d%d", &x, &y, &z);
if (x < y)
{
i = x;
x = y;
y = i;
}
if (x < z)
{
i = x;
x = z;
z = i;
}
if (y < z)
{
i = y;
y = z;
z = i;
}
printf("%d > %d > %d\n", x, y ,z);
return 0;
}

练习3:写代码输出1到100之间所有的三的倍数

int main()
{
int i = 0;
for (i = 1; i <= 100; i++)
{
if (i % 3 == 0)
printf("%d ", i);
}
return 0;
}

练习4:给定两个数,求这两个数的最大公约数

int main()
{
int x = 20;
int y = 15;
int z = 1;
while (z != 0)
{
z = x % y;
x = y;
y = z;
}
printf("最大公约数为:%d\n", x);
return 0;
}

方法:辗转相除法

练习5:打印100到200之间的素数

方法一:(不够优)

int main()
{
int i = 0;
for (i = 100; i <= 200; i++)
{
int x = 0;
for (x = 2; x < i; x++)
{
if (i % x == 0)
break;
}
if (x == i)
printf("%d ", i);
}
return 0;
}

方法二:

int main()
{
int i = 0;
for (i = 101; i <= 200; i += 2)
{
int x = 0;
for (x = 2; x <= sqrt(i); x++)
{
if (i % x == 0)
break;
}
if (x > sqrt(i))
{
printf("%d ", i);
}
}
return 0;
}

练习6:计算1到100之间数字9的个数

int main()
{
int i = 0;
int count = 0;
for (i = 1; i <= 100; i++)
{
if (i % 10 == 9)
{
printf("%d ", i);
count++;
}
if (i / 10 == 9)
{
printf("%d ", i);
count++;
}
}
printf("\ncount = %d\n", count);
return 0;
}

练习7:计算1/1-1/2+1/3-1/4+......+1/99-1/100

方法一:

int main()
{
int i = 0;
double x = 0;
int flag = 1;
for (i = 1; i <= 100; i++)
{
x += flag*1.0 / i;
flag = -flag;
}
printf("%lf\n", x);
return 0;
}

方法二:

int main()
{
int x = 0;
double a = 0;
int y = 0;
double b = 0;
double z = 0;
for (x = 1; x <= 100; x += 2)
{
a += 1.0 / x;
}
for (y = 2; y <= 100; y += 2)
{
b -= 1.0 / y;
}
z = a + b;
printf("%lf\n", z);
return 0;
}

练习8:求10个数中的最大值

int main()
{
int a[] = { 0,1,2,3,4,5,6,7,8,9 };
int i = 0;
int max = 0;
int sz = sizeof(a) / sizeof(a[0])-1;
for (i = 0; i <= sz; i++)
{
if (max < a[i])
max = a[i];
}
printf("%d\n", max);
return 0;
}

练习9:打印乘法口诀表

int main()
{
int x = 0;
int y = 0;
int z = 0;
for (y = 1; y <= 9; y++)
{
for (x = 1; x <= y; x++)
{
z = y * x;
printf("%d * %d = %-2d ", x, y, z);
}
printf("\n");
}
return 0;
}

练习10:猜数字游戏

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <Windows.h>

void game()
{
int i = 0;
int guess = 0;
i = rand()%100 + 1;
while (1)
{
printf("请猜数字:");
scanf("%d", &guess);
if (guess > i)
{
printf("猜大了\n");
Sleep(1000);
system("cls");
}
else if (guess < i)
{
printf("猜小了\n");
Sleep(1000);
system("cls");
}
else if (guess == i)
{
printf("猜对了,游戏结束!\n");
Sleep(1000);
system("cls");
break;
}
}
}

void menu()
{
printf(" \n");
printf(" 1.play 0.exit \n");
printf(" \n");
}

int main()
{
int choose = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:");
scanf("%d", &choose);
if (choose == 0)
{
printf("游戏结束\n");
Sleep(1000);
system("cls");
break;
}
else if (choose == 1)
{
printf("开始游戏\n");
Sleep(1000);
system("cls");
game();
}
else
{
printf("输入错误,请重新输入!\n");
Sleep(1000);
system("cls");
}
} while (choose);
return 0;
}