#include <stdio.h>
void main()
{
char c,str[51]
int i=0,letters=0,space=0,digit=0,others=0
printf("请输入不超过50个字符\n")
gets(str)
while((c=str[i++])!=0)
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++
else if(c==' ')
space++
else if(c>='0'&&c<='9')
digit++
else
others++
}
printf("英文字符:%d 空格:%d 数字:%d 其他:%d\n",letters,space,digit,others)
}
字符包括
字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。字符在计算机内存放,应规定相应的代表字符的二进制代码。代码的选用要与有关外围设备的规格取得一致。
这些外围设备包括键盘控制台的输入输出、打印机的输出等等。字符作输入时,要自动转换为二进制代码存于机内输出时,计算机内二进制代码自动转化为字符,两者的转换全是靠外围设备实现的。字符是数据结构中最小的数据存取单位。
以上内容参考:百度百科-字符
原程序不能得到结果的原因是因为没有在条件不成立时反回0值,所以在主程序中进行判断时由于没有元素为0导致全部输出,另外数组下标是从0开始的,并不是从1开始的,所以在循环中数组下标为i-1
修改后的程序如下:
/////////////////////////////////
#include "stdio.h"
int a[100]
int i
fun(int m)
{
if (m%7==0 || m%11==0)
{
if (m%7!=0 || m%11!=0)
return m
else return 0
}
else return 0
}
main()
{
for(i=1i<=100i++)
{
a[i-1]=fun(i)
if(a[i-1]!=0)
printf("%d ",a[i-1])
}
getch()
}
/////////////////////////////////
另一个版本:
/////////////////////////////////
#include "stdio.h"
int fun(int m)
{
if ((m%7==0 || m%11==0) &&m%77!=0)
return m
else return 0
}
main()
{
int a[100]
int i
for(i=1i<=100i++)
{
a[i-1]=fun(i)
if(a[i-1]!=0) printf("%d \n",a[i-1])
}
getch()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)