从键盘输入6位仅由数字0~9组成的密码。用户每输入一个密码并按回车键后,程序给出判断:如果是数字,则原样输出该数字,并提示用户目前已经输入了几位密码,同时继续输入下一位密码;否则,程序提示"error",并让用户继续输入下一位密码。直到用户输入的密码全部是数字为止。
#include <stdio.h>
int main()
{
int x,ret;
char n;
printf("Input your password:\n");
ret = scanf("%c",&n);
for(x=1;x<=6;x++)
{
while (ret!=1||n<=0)
{
printf("error!\n");
while(getchar()!='\n');//一定要增加过滤条件否则系统会在输入非法语句时无限循环
printf("Input your password:\n");
ret = scanf("%c",&n);
}
printf("%c, you have enter %d-bits number\n",n,x);
ret = scanf(" %c",&n);
}
return 0;
}
(以上为本人第一次练习时所写,不够符合题意,正确答案如下:)
#include <stdio.h>
int main()
{
int x=1;
int n;
printf("Input your password:\n");
while(x<=6)
{
scanf("%c",&n);
if(n>='0'&&n<='9')//所有的数字及字符等都以ascii码存储在计算机中,所以我们通过加单引号将数字字符转译为其asc值来进行判断,可以极大的减轻我们的编码数量。
{
printf("%c, you have enter %d-bits number\n",n,x);
x++;
}
else
{
printf("error!\n");
}
while(getchar()!='\n');//在scanf存储%c时,回车符通常是被存储在缓冲区的,因此我们可以添加while(getchar()!=0)来清除掉缓冲区中的回车符。通过在字符输入时添加%*c也可以忽略掉一个字符型输入。
}
return 0;
}
从键盘输入一系列正整数,输入-1表示输入结束(-1本身不是输入的数据)。编写程序判断输入数据中奇数和偶数的个数。如果用户输入的第一个数据就是-1,则程序输出"over!"。否则。用户每输入一个数据,输出该数据是奇数还是偶数,直到用户输入-1为止,分别统计用户输入数据中奇数和偶数的个数。
#include <stdio.h>
int main()
{
int n,x=0,y=0;
printf("Please enter the number:\n");
do
{
scanf("%d",&n);
if(n%2!=0&&n!=-1)
{
printf("%d:odd\n",n);
x++;
//scanf("%d",&n);
}
else if(n%2==0)
{
printf("%d:even\n",n);
y++;
//scanf("%d",&n);
}
}while(n!=-1);
if(x==0&&y==0)
{
printf("over!\n");
}
else if(x!=0||y!=0)
{
printf("The total number of odd is %d\n",x);
printf("The total number of even is %d\n",y);
}
return 0;
}
一个球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下并反弹......,求它在第5次和第10次落地时,分别共经过了多少米?第5次和第10次反弹分别是多高?要求计算结果保留到小数点后3位。用户从键盘输入想要计算的第n次(n<=15)。程序中所有浮点数的数据类型均为float。
#include <stdio.h>
int main()
{
float sum = 0,m=100;
int n,t;
printf("input:\n");
scanf("%d",&n);
printf("%d times:\n",n);
for(t = 1;t<=n;t++)
{
sum = sum + 2*m;
m = m*0.5;
}
printf("%.3f\n",sum-100);
printf("%.3f\n",m);
return 0;
}
今天的联系就到这里了,开始新章节的学习了,送自己一句话:
人总是低估自己的能力,但是又高估自己的毅力。
坚持下去,为了更好的明天!