检测输入数据中奇数和偶数的个数
题目内容:
从键盘输入一系列正整数,输入-1表示输入结束(-1本身不是输入的数据)。编写程序判断输入数据中奇数和偶数的个数。如果用户输入的第一个数据就是-1,则程序输出"over!"。否则。用户每输入一个数据,输出该数据是奇数还是偶数,直到用户输入-1为止,分别统计用户输入数据中奇数和偶数的个数。
#include<stdio.h>
int main()
{
int a,b=0,c=0,flag=0;
printf("Please enter the number:\n");
while(1)
{
scanf("%d",&a);
if(a>-1)
{
if(a%2==1)
{printf("%d:odd\n",a);b++;flag=1;}
else if(a%2==0) {printf("%d:even\n",a);c++;flag=1;}
}
if(a==-1&&flag==1) break;
if(a==-1&&flag==0){printf("over!\n");break;}
}
printf("The total number of odd is %d\n",b);
printf("The total number of even is %d\n",c);
return 0;
}
思路
根据题目意思分为第一次输入和第2-n次输入
于是if里面的判断条件就需要用两个条件来判断,不妨假设一个flag=0;若第一次输入-1且flag=0时就可以跳出循环,若为第2-n次输入-1 则就可以在前几次的输入过程中把flag赋值为1在写判断条件即可
#include <stdio.h>
unsigned char i = 0;
int main()
{
for(i = 0;i<=255;i++)
{
printf("hello world\n");
}
return 0;
}
以上代码会循环多少次呢
答案是无数次
因为unsigned char 定义的最大数字为255
于是i永远也不会>255 于是就循环无数次
int main()
{
char a[1000];
int i;
for(i=0; i<1000; i++)
{
a[i] = -1-i;
}
printf("%d",strlen(a));
return 0;
}
以上代码又会输出多少呢
答案是255
首先是strlen函数是读取到0就会结束
char所能存储的值是-128——127
第一个打印的数是-1 以此类推 -2 ...-128 ,但是-128后面的数为127 一直减到0 总共255