寻大小写字母及空格,数字,其他字符个数:
一、
#include<stdio.h>
int main()
{
void numbersum(char c1[80],int *upp,int *low,int *dig,int *oth,int *spa);
int upper=0,lower=0,digit=0,space=0,other=0,i=0;
char s[80];
printf("input string:");
gets(s);
numbersum(s,&upper,&lower,&digit,&other,&space);
printf("upper case:%d lower case:%d",upper,lower);
printf( "    space:%d  digit:%d  other:%d\n",space,digit,other);
return 0;
}
void numbersum(char c1[80],int *upp,int *low,int *dig,int *oth,int *spa)
{
int i=0;
while(c1[i]!='\0')    \\判断结尾为结束标志
{
if(c1[i]>='a'&&c1[i]<='z')
  (*low)++;
else if(c1[i]>='A'&&c1[i]<='Z')
  (*upp)++;
else if(c1[i]>='0'&&c1[i]<='9')
  (*dig)++;
else if(c1[i]==' ') 
  (*spa)++;
else
  (*oth)++;
i++;
}
}
注:gets()函数输入字符串时,会在字符串尾自动加上’\0’表示结束。Scanf()函数遇到空格
回车、Tab时会认为该数据结束。所以不用来输入字符串。
二、(不推荐
#include<stdio.h>
trunc函数实例
int main()
{
while(s[i]!='\n')
{
    i++;
    scanf("%c",&s[i]);
}
int upper=0,lower=0,digit=0,space=0,other=0,i=0;
char *p1,s[20];   
printf("input string: ");
while((s[i]=getchar())!='\n') i++;    \\判断结尾为’n’
p1=&s[0];
while(*p1!='\n')
{
    if(('A'<=*p1)&&(*p1<='Z'))
        upper++;
    else if(('a'<=*p1)&&(*p1<='z'))
        lower++;
    else if((*p1)==' ')
        space++;
    else if(('0'<=*p1)&&(*p1<='9'))
        digit++;
    else
        other++;
    p1++;
}
printf("upper case:%d  lover caxe:%d",upper,lower);
printf("    space case:%d  digit:%d  other:%d\n",space,digit,other);
return 0;
}
注:getchar()和scanf()输入时,应注记忆要输入的字符个数,不要超过字符数组的限定。Getchar()在输入信息时,并不是在键盘上输一个字符,该字符就立即送到计算机中,只有按了Enter键后才把这些字符一起输到计算机里。
求最大公约数和最小公倍数:
一、
有两整数n和m:
① n%m得余数r
② 若r=0,则b即为两数的最大公约数
③ 若r≠0,则n=m,m=r,再回去执行①
#include <stdio.h>
int main()
{
int p,r,n,m,temp;
printf("input:");
scanf("%d%d",&n,&m);
if(n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)  //注:是m!=0不是m!=n
{
r=n%m;
n=m;
m=r;
}
printf("max:%d\n",n);    //公约数
printf("min:%d\n",p/n);  //公倍数
return 0;
}
二、
有两整数a和b:
① 若a>b,则a=a-b
② 若a<b,则b=b-a
③ 若a=b,则a(或b)即为两数的最大公约数
④ 若a≠b,则再回去执行①
#include <stdio.h>
int main()
{
int p, a, b;
printf("Input two integer numbers:\n"); 
scanf ("%d%d", &a, &b);  /* a, b不相等,大数减小数,直到相等为止。*/   
p=a*b;
while (a!=b)
{
    if (a>b)
        a=a-b;
    else
        b=b-a;
}
printf("The la:%d\n", a);
printf("The least common multiple:%d\n", p/a);
return 0;
}
三、
挨个,俗称本法。。。。。。。。
#include<stdio.h>
int main()
{
int m,n,t,i,j;
printf("请输入二个整数:");
scanf("%d%d",&m,&n);
if(m<n)
{
t=m;
m=n;
n=t;
}
for(i=0;i<=n;i++)
if(m%i==0&&n%i==0)
    j=i;
printf("最大公约数:%d",j);
return 0;
}
三个数中最大数:
一、
#include<stdio.h>
int main()
{
int a,b,c;
printf("请输入三个整数:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
  if(b>c)
    printf("max=%d",a);
  else if(a<c)
    printf("max=%d",c);
  else
    printf("max=%d",a);
else if(a>c)
printf("max=%d",b);
else if(c>b)
printf("max=%d",c);
else
printf("max=%d",b);
return 0;
}
二、
#include<stdio.h>
int main()
{
void max(int x,int y,int z);
int a,b,c;
printf("input sangezhengshu:");
scanf("%d%d%d",&a,&b,&c);
max(a,b,c);
return 0;
}
void max(int x,int y,int z)
{
int m;
m=x;
if(y>m)
m=y;
if(z>m)
m=z;
printf("max=%d",m);
}
三、
#include<stdio.h>
int main()
{
int max(int x,int y,int z);
int a,b,c,k;
printf("请输入三个整数:");
scanf("%d%d%d",&a,&b,&c);
k=max(a,b,c);
printf("max=%d",k);
return 0;
}
int max(int x,int y,int z)
{
int m;
m=x;
if(y>m)
m=y;
if(z>m)
m=z;
return m;
}
求一元二次方程解
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,disc,x1,x2;
printf("请输入一元二次方程中a、b、c的值\n");
scanf("%lf%lf%lf",&a,&b,&c);
if(a==0)
printf("不是一元二次方程\n");
else
{
disc=b*b-4*a*c;
if(disc==0)
    printf("有两个相同实数根是:%lf\n",-b/(2*a));
else
    if(disc>0)
    {
        x1=(-b+sqrt(disc))/(2*a);
        x2=(-b-sqrt(disc))/(2*a);
        printf("有两个不相等的根分别为:%lf 和 %lf\n",x1,x2);
    }
    else
        printf("无实数根\n");
}
return 0;
}
闰年
#include<stdio.h>
int main()
{
int year,leap;
printf("请输入要判断的年份\n");
scanf("%d",&year);
if(year%4==0)
{
  if(year%100==0)
  {
      if(year%400==0)
          leap=1;
      else
          leap=0;
  }
  else
      leap=0;
}
else
leap=0;
if(leap==1)
printf("%d 是闰年",year);
else
printf("%d 不是闰年",year);
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。