输入一行字符串,统计其中英文字母不分大小写c语言编程

输入一行字符串,统计其中英文字母不分大小写c语言编程,第1张

#include <stdioh>

#define N 100

main()

{

 char all[N];

 int i,xx=0,shuzi=0,qita=0,dx=0;

 printf("请输入一个字符串(不超过100个):");

 gets(all);

 for(i=0;all[i];i++)

 {

  if(all[i]>='a'&&all[i]<='z'||all[i]>='A'&&all[i]<='Z')

   if(all[i]>='A'&&all[i]<='Z')

    dx++;

   else

    xx++;

  else

   if(all[i]>='0'&&all[i]<='9')

    shuzi++;

   else

    qita++;

 }

 printf("其中大写字母%d个,小写字母%d个,数字%d个,其他字符%d个\n",dx,xx,shuzi,qita);

}

您举例的是端口地址

物理地址是在内存中,保护模式下一般禁止直接读写内存地址!但是可以取数据段偏移地址

如 scanf(“%d”,&d);中的&d就是数据段偏移地址。

#include <stdioh>

void main()

{

int i=1;

bool mark=true;

double sum=0;

do {

sum+=mark10/i:-10/i;

i++;

mark = !mark;

} while(10/i>1e-4);

printf("n=%d\n", i);

printf("总和=%lf\n", sum);

}

输入一个四位数x,编程计算每一位数字相加之和的C语言

#include <stdioh>

void main()

{

int x;

int dig[4], rest, dx=1000;

int sum=0;

printf("请输入4位整数:\n");

scanf("%d", &x);

rest=x;

for(int i=3; i>=0; i--) {

dig[i]=rest/dx;

rest-=dig[i]dx;

dx/=10;

sum+=dig[i];

}

printf("各位数字之和=%d\n", sum);

}

如对答案满意,欢迎采纳,谢谢,如有问题,欢迎追问

这个不用计算机编吧?任一个数的平方大于等于0,你这式子中,要想其成立,则ax1x1=0;bx2x2=0;cx3x3=0;dx4x4=0同时成立。取ax1x1=0讲,a≠0则x1=0;a=0则x1为任意实数。

#include<stdioh>

void main()

{

float a,b,c,d;

printf("计算ax1x1+bx2x2+cx3x3+dx4x4=0的解的个数。\n");

printf("请输入a,b,c,d的值:\n");

printf("a=");

scanf("%f",&a);

printf("b=");

scanf("%f",&b);

printf("c=");

scanf("%f",&c);

printf("d=");

scanf("%f",&d);

if(a==0)printf("\nx1有无穷解,");

else printf("\nx1=0");

if(b==0)printf("\nx2有无穷解,");

else printf("\nx2=0");

if(c==0)printf("\nx3有无穷解,");

else printf("\nx3=0");

if(d==0)printf("\nx4有无穷解。\n");

else printf("\nx4=0\n");

}

计算 f(x1,x2)=x1^2+2x2^2-4x1-2x1x2 的无约束极值,初始点x0=[1,1]。

/

tt ---- 一维搜索初始步长

ff ---- 差分法求梯度时的步长

ac ---- 终止迭代收敛精度

ad ---- 一维搜索收敛精度

n ----- 设计变量的维数

xk[n] -- 迭代初始点

/

#include<stdioh>

#include<stdlibh>

#include<mathh>

#include<conioh>

#define tt 001

#define ff 10e-6

#define ac 10e-6

#define ad 10e-6

#define n 2

double ia;

double fny(double x)

{

double x1=x[0],x2=x[1];

double f;

f=x1x1+2x2x2-4x1-2x1x2;

return f;

}

double iterate(double x,double a,double s)

{

double x1;

int i;

x1=(double )malloc(nsizeof(double));

for(i=0;i<n;i++)

x1[i]=x[i]+as[i];

return x1;

}

double func(double x,double a,double s)

{

double x1;

double f;

x1=iterate(x,a,s);

f=fny(x1);

return f;

}

void finding(double a[3],double f[3],double xk,double s)

{

double t=tt;

int i;

double a1,f1;

a[0]=0;f[0]=func(xk,a[0],s);

for(i=0;;i++)

{

a[1]=a[0]+t;

f[1]=func(xk,a[1],s);

if(f[1]<f[0]) break;

if(fabs(f[1]-f[0])>=ad)

{

t=-t;

a[0]=a[1];f[0]=f[1];

}

else

{

if(ia==1) return; //break

t=t/2;ia=1;

}

}

for(i=0;;i++)

{

a[2]=a[1]+t;

f[2]=func(xk,a[2],s);

if(f[2]>f[1]) break;

t=2t;

a[0]=a[1];f[0]=f[1];

a[1]=a[2];f[1]=f[2];

}

if(a[0]>a[2])

{

a1=a[0];

f1=f[0];

a[0]=a[2];

f[0]=f[2];

a[2]=a1;

f[2]=f1;

}

return;

}

double lagrange(double xk,double ft,double s)

{

int i;

double a[3],f[3];

double b,c,d,aa;

finding(a,f,xk,s);

for(i=0;;i++)

{

if(ia==1) { aa=a[1]; ft=f[1]; break; }

d=(pow(a[0],2)-pow(a[2],2))(a[0]-a[1])-(pow(a[0],2)-pow(a[1],2))(a[0]-a[2]);

if(fabs(d)==0) break;

c=((f[0]-f[2])(a[0]-a[1])-(f[0]-f[1])(a[0]-a[2]))/d;

if(fabs(c)==0) break;

b=((f[0]-f[1])-c(pow(a[0],2)-pow(a[1],2)))/(a[0]-a[1]);

aa=-b/(2c);

ft=func(xk,aa,s);

if(fabs(aa-a[1])<=ad) {if(ft>f[1]) aa=a[1];break;}

if(aa>a[1])

{

if(ft>f[1]) {a[2]=aa;f[2]=ft;}

else if(ft<f[1]) {a[0]=a[1];a[1]=aa;f[0]=f[1];f[1]=ft;}

else if(ft==f[1])

{

a[2]=aa;a[0]=a[1];

f[2]=ft;f[0]=f[1];

a[1]=(a[0]+a[2])/2;

f[1]=func(xk,a[1],s);

}

}

else

{

if(ft>f[1]) {a[0]=aa;f[0]=ft;}

else if(ft<f[1]) {a[2]=a[1];a[1]=aa;f[2]=f[1];f[1]=ft;}

else if(ft==f[1])

{a[0]=aa;a[2]=a[1];

f[0]=ft;f[2]=f[1];

a[1]=(a[0]+a[2])/2;

f[1]=func(xk,a[1],s);

}

}

}

if(ft>f[1]) {ft=f[1];aa=a[1];}

return aa;

}

double gradient(double xk)

{

double g,f1,f2,q;

int i;

g=(double)malloc(nsizeof(double));

f1=fny(xk);

for(i=0;i<n;i++)

{q=ff;

xk[i]=xk[i]+q; f2=fny(xk);

g[i]=(f2-f1)/q; xk[i]=xk[i]-q;

}

return g;

}

double bfgs(double xk)

{

double u[n],v[n],h[n][n],dx[n],dg[n],s[n];

double aa,ib;

double ft,xk1,g1,g2,xx,x0=xk;

double fi;

int i,j,k;

ft=(double )malloc(sizeof(double));

xk1=(double )malloc(nsizeof(double));

for(i=0;i<n;i++)

{

s[i]=0;

for(j=0;j<n;j++)

{

h[i][j]=0;

if(j==i) h[i][j]=1;

}

}

g1=gradient(xk);

fi=fny(xk);

x0=xk;

for(k=0;k<n;k++)

{

ib=0;

if(ia==1) { xx=xk; break; }

ib=0;

for(i=0;i<n;i++) s[i]=0;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

s[i]+= -h[i][j]g1[j];

aa=lagrange(xk,ft,s);

xk1=iterate(xk,aa,s);

g2=gradient(xk1);

for(i=0;i<n;i++)

if((fabs(g2[i])>=ac)&&(fabs(g2[i]-g1[i])>=ac))

{ib=ib+1;}

if(ib==0) { xx=xk1; break; }

fi=ft;

if(k==n-1)

{ int j;

xk=xk1;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

h[i][j]=0;

if(j==i) h[i][j]=1;

}

g1=g2; k=-1;

}

else

{

int j;

double a1=0,a2=0;

for(i=0;i<n;i++)

{

dg[i]=g2[i]-g1[i];

dx[i]=xk1[i]-xk[i];

}

for(i=0;i<n;i++)

{

int j;

u[i]=0;v[i]=0;

for(j=0;j<n;j++)

{

u[i]=u[i]+dg[j]h[j][i];

v[i]=v[i]+dg[j]h[i][j];

}

}

for(j=0;j<n;j++)

{

a1+=dx[j]dg[j];

a2+=v[j]dg[j];

}

if(fabs(a1)!=0)

{

a2=1+a2/a1;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

h[i][j]+=(a2dx[i]dx[j]-v[i]dx[j]-dx[i]u[j])/a1;

}

xk=xk1; g1=g2;

}

}

if(ft>fi) { ft=fi; xx=xk;}

xk=x0;

return xx;

}

void main ()

{

int k;

double xx,f;

double xk[n]={1,1};

xx=bfgs(xk);

f=fny(xx);

printf("\n\nThe Optimal Design Result Is:\n");

for(k=0;k<n;k++)

{printf("\n\tx[%d]=%f",k+1,xx[k]);}

printf("\n\tf=%f",f);

getch();

}

这是基于一本书上的算法。但我很奇怪,原书中的算法有结果列出,但是我却不能通过编译。真是纳闷!修改后可以得到结果了,如果你要使用这个简单的程序,你只需更改 维数n、double fny(double x)的实现部分以及main函数中的xk初值就可以了。不过这个程序也不是很好。

以上就是关于输入一行字符串,统计其中英文字母不分大小写c语言编程全部的内容,包括:输入一行字符串,统计其中英文字母不分大小写c语言编程、用C语言编写的程序,怎么从一个物理地址读数、C语言程序:计算1-1/2+1/3-1/4+···+1/99-1/100+···,直到最后一项绝对值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10218390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存