1.判断三角形(运用到scanf返回值类型的运用,scanf的多组数据读取)
#include <stdio.h>
int main()
{
int a,b,c;
while((scanf("%d%d%d",&a,&b,&c))!=EOF)
{
if(a+b>c&&a+c>b&&b+c>a)
{
if(a == b && a == c && b == c)
{
printf("Equilateral triangle!");
}
else if((a==b&&a!=c)||(a==c&&a!=b)||(b==c&&b!=a))
{
printf("Isosceles triangle!\n");
}
else
{
printf("“Ordinary triangle!\n”");
}
}
else {
printf("Not a triangle!\n");
}
}
return 0;
}
2,猜数字游戏
注意标红部分
# include <stdio.h>
# include <time.h>
void start()
{
printf("*******************\n");
printf("*****1开始游戏*****\n");
printf("*******0退出*******\n");
printf("*******************\n");
printf("*******************\n");
printf("*******************\n");
printf("请选择》》\n");
}
void game()
{
int p = 0;
printf ("输入猜测的数:");
int t = rand() % 100 + 1;
while (1)
{
scanf_s("%d", &p);
if (p > t)
{
printf("猜大了");
}
else if (p < t)
{
printf("猜小了");
}
else
{
printf("猜对了");
break;
}
}
}
int main()
{
int i ;
srand((unsigned int)time(NULL));
do
{
start();
scanf_s("%d", &i);
if (i == 1)
{
game();
}
else
{
break;
}
} while (i);
return 0;
}
(2)
# include <stdio.h>
# include <time.h>
void start()
{
printf("*******************\n");
printf("*****1开始游戏*****\n");
printf("*******0退出*******\n");
printf("*******************\n");
printf("*******************\n");
printf("*******************\n");
printf("请选择》》\n");
}
void game()
{
int p = 0;
printf ("输入猜测的数:");
int t = rand() % 100 + 1;
scanf_s("%d", &p);
while (1)
{
if (p > t)
{
printf("猜大了");
}
else if (p < t)
{
printf("猜小了");
}
else
{
printf("猜对了");
break;
}
}
}
int main()
{
int i ;
srand((unsigned int)time(NULL));
do
{
start();
scanf_s("%d", &i);
if (i == 1)
{
game();
}
else
{
break;
}
} while (i);
return 0;
}
scanf的位置会影响最后结果,如果是下面把scanf放在循环外的情况则会出现,只读取一次用户在键盘上输入的数据,然后一直打印猜小了,或猜大了或者运气好了直接猜对
正常结果:()
(2)的结果,这是因为把scanf放在了循环外,我们的目的是让玩家输入多次数据一直到猜对为止