注:
c语言求字符类型应用头文件<ctype.h>
函数:
int isalpha(int ch) ,判断ch是否为字母,是,返回值非0;否,返回值0;
int isdigit(int ch),判断ch是否为数字,是,返回值非0;否,返回值0;
int isslower(int ch),判断ch是否为小写英文字母,是,返回值非0;否,返回值0;
int isupper(int ch),判断ch是否为大写英文字母,是,返回值非0;否,返回值0.
1.【统计字符】
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#include<stdio.h>
#include<ctype.h> //c语言中字符函数头文件
int main()
{
int zimu=0,kongge=0,shuzi=0,qita=0,c;
while((c=getchar())!='\n') //输入一行字符
{
if(isalpha(c)) //如果c是字母
zimu++;
else if(c==' ') //如果c为空格
kongge++;
else if(isdigit(c)) //如果c为数字
shuzi++;
else //如果c为其他
qita++;
}
printf("%d\n%d\n%d\n%d\n",zimu,kongge,shuzi,qita);
return 0;
}
2.【阶乘数列】
求1+2!+3!+4!+…+30!。 科学计数法,保留两位小数。
#include<stdio.h>
int main()
{
int n; //n为项数
float j=1,sum=0; //j为每项的值,sum为总和
for(n=1;n<=30;n++)
{
j=n*j; //每一项的值
sum=sum+j; //总和
}
printf("%.2e",sum); //科学计数法,保留2位
return 0;
}
3.【最小绝对值】
输入10个数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。
#include<stdio.h>
#include<math.h> //数学函数头文件
int main()
{
int a[10];
int i,min=a[0],t;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]); //输入10个数
if(fabs(min)>fabs(a[i])) //绝对值函数fabs
min=a[i]; //找出绝对值最小的数
}
for(i=0;i<10;i++) //从10个数依次向后循环
{
if(a[i]==min) //依次配对找到最小的数
{
t=a[i];
a[i]=a[9];
a[9]=t; //将最小的数和第10个数a[9]对换。注意,是a[i]数值之间对换
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]); //输出操作完成后的10个数
return 0;
}