当前位置:首页 » 编程语言 » c语言aa1

c语言aa1

发布时间: 2023-05-18 11:09:04

⑴ 有两个整型数组a和b,各有10个元素,将它们对应地逐个相比。如果a数组中的元素大于b数组中的相应元

#include<stdio.h>
intcmp(inta[],intb[],charc)
{inti,j,aa1[10]={0},bb1[10]={0},aa2[10]={0},bb2[10]={0};
charc1='a'+'b'-c;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(a[i]>b[j]){aa1[i]++;bb2[j]++;}
elseif(a[i]<b[j]){aa2[i]++;bb1[j]++;}
printf("%c数组: ",c);
世闹迅for(i=0;i<10;i++)
printf("大于%c数组:%d 等于%c数组:%d 小于%c数组:%d ",
c1,aa1[i],c1,10-aa1[i]-aa2[i],c1,aa2[i]);
printf("弯袜%c数组: ",c1);
for(i=0;i<10;i++)
printf("大于%c数组:%d 等于%c数组:%d 小于%c数组:%d ",
c,bb1[i],c,10-bb1[i]-bb2[i],c,bb2[i]);
for(i=j=0;i<10;i++)j+=aa1[i]-bb1[i];
if(j==0)return0;
return(j>0?1:-1);
}
intmain()
{inti,a[10],b[10],k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
scanf("%d",&b[i]);
k=cmp(a,b,'a');
if(k==0)printf("两个数组并列 ");
elseif(k==1)printf("a数组比b数搜此组大 ");
elseprintf("b数组比a数组大 ");
return0;
}

⑵ 已知xy变量值,求二元一次方程abc系数 c语言

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<ctime>
#include<cstring>
#include<algorithm>
usingnamespacestd;
intmul(inta,intb)
{
into,p,q;
if(a>=b)
p=b;
else
p=a;
for(o=p;o>=1;o--)
{
升埋和if(a%o==0&&b%o==0)
{
q=o;
break;
吵盯}
}
return(a*b)/q;
}
intmain()
{
floata=0.0,b=0.0,c=0.0;
intx1,x2,x3,y1,y2,y3;
cin>>x1>>y1;
cin>>x2>>y2;
cin>>x3>>y3;
inth1,h2,aa1,aa2,bb1,bb2;
h1=y2-y3;
液枝h2=y1-y3;
aa1=(x2-x3)*(x2+x3);
aa2=(x1-x3)*(x1+x3);
bb1=x2-x3;
bb2=x1-x3;
if((bb1<0&&bb2<0)||(bb1>0&&bb2>0))
{
intk,l1,l2,m1,m2;
k=mul(abs(bb1),abs(bb2));
l1=k/abs(bb1);
l2=k/abs(bb2);
m1=h1*l1,aa1=aa1*l1;
m2=h2*l2,aa2=aa2*l2;
m1=m1-m2;
aa1=aa1-aa2;
a=m1/aa1;
b=(y2-y3-a*(x2+x3)*(x2-x3))/(x2-x3);
c=y3-a*x3*x3-b*x3;
}
if((bb1<0&&bb2>0)||(bb1>0&&bb2<0))
{
intk,l1,l2,m1,m2;
k=mul(abs(bb1),abs(bb2));
l1=k/abs(bb1);
l2=k/abs(bb2);
m1=h1*l1,aa1=aa1*l1;
m2=h2*l2,aa2=aa2*l2;
m1=m1+m2;
aa1=aa1+aa2;
a=m1/aa1;
b=(y2-y3-a*(x2+x3)*(x2-x3))/(x2-x3);
c=y3-a*x3*x3-b*x3;
}
cout<<"a="<<a<<"b="<<b<<"c="<<c<<endl;
cout<<"QQ:2416560314原创代码,转载前请联系我!"<<endl;
return0;
}

⑶ C语言程序是什么意思怎样建存储文件呀

楼主的意思不清楚。如果是建胡陵立这样一个程序的话用编兆姿译器如VC++然后在目录中找Debug可以找到程序,运行程序就可以实现如上操作;
如果是裤猜戚建立文件那太简单了,一楼所说的save.c

⑷ 某高校C语言前几年关于字符串的一道上机题,望高人给出完整程序,最好别用指针,十分感谢!

我写的这个源程序有点长,我在Dev-C++上测试过,尺启没问题,但要在Win-TC上运行需要把中文改为英文就可以了。注释写的不是很详细
在Dev-C++上运行过程如下

请输入要匹配的个数n:
4

请输入4字符串:
Aab
a2B
ab
ABB

请输入要匹配的字符串:
a[a2b]b

行号:1,匹配的字符串:Aab
行号:2,匹配的字符串:a2B
行号:4,匹配的字符串:ABB

任意键退出...
***********************************************************************
代缓拍码如下:

#include <stdio.h>
#include <conio.h>
#include <string.h>
int match_len(char str[]);
int str_same(char str1[],char str2[],int flag,int flag_case);
int str_extract(char str[],char str_m[],int flag_case);
int str_match(char str[],char str_m[],int flag_case);

main()
{
char str[50][50],str_m[50],str_temp[50];
int i,j,n;
printf("请输入要匹配的个数n:\n");
scanf("%d",&n);
printf("\n请输入%d字符串:\n",n);
for(i=0;i<n;i++)
{
scanf("%s",str[i]);
}
printf("\n请输入要匹配的字符串:\n");
scanf("%s",str_m);
printf("\n");
for(i=0;i<n;i++)
{
strcpy(str_temp,str[i]);
if(str_match(str_temp,str_m,0))//0时表示不区分大小写
{
printf("行号扰困羡:%d,匹配的字符串:%s\n",i+1,str[i]);
}
}
printf("\n任意键退出...\n");
getch();
}

int str_match(char str[],char str_m[],int flag_case)
{//单个字符串的匹配
int len;
//获取str_m要匹配的长度
len=match_len(str_m);
if(strlen(str)==len)//首先判断长度是否相等
{
return str_extract(str,str_m,flag_case);
}
else
{
return 0;
}
}

int str_extract(char str[],char str_m[],int flag_case)
{//提取要匹配的元素
char str_b[50],str_m_b[50];
char str_a[50],str_m_a[5];
char str_mid[50],str_m_mid[50];
int i,j,k;
int times=1;
int flag_b,flag_a,flag_mid,flag_break=0;
//提取要匹配的元素('['符号前)
for(i=0;str_m[i]!='[';i++)
{
str_b[i]=str[i];
str_m_b[i]=str_m[i];
}
str_b[i]='\0';
str_m_b[i]='\0';
//提取要匹配的元素(']'符号后)
for(i=strlen(str_m)-1,j=strlen(str)-1,k=0;str_m[i]!=']';i--,j--,k++)
{
str_m_a[k]=str_m[i];
str_a[k]=str[j];
}
str_a[k]='\0';
str_m_a[k]='\0';
//提取要匹配的元素('[]'符号中)
for(i=0;str_m[i]!='\0';i++)
{
if(str_m[i]=='[')
{
str_mid[0]=str[i];
str_mid[1]='\0';
break;
}
}
for(i=0;str_m[i]!='\0';i++)
{
if(str_m[i]=='[')
{
i++;
for(j=0;str_m[i]!='\0';i++,j++)
{
if(str_m[i]==']')
{
str_m_mid[j]='\0';
flag_break=1;
break;
}
str_m_mid[j]=str_m[i];
}
}
if(flag_break)
{
break;
}
}
//字符比较
flag_b=str_same(str_b,str_m_b,1,flag_case);
flag_a=str_same(str_a,str_m_a,1,flag_case);
flag_mid=str_same(str_mid,str_m_mid,2,flag_case);
//匹配结果
if(flag_b && flag_a && flag_mid)
{
return 1;
}
else
{
return 0;
}
}

int str_same(char str1[],char str2[],int flag,int flag_case)
{//flag_case为1时表示区分大小写,为0时表示不区分
char str[2]={'\0'};
int i;
if(flag==1)
{//比较
if(flag_case)
{//区分大小写(1表示匹配,0表示不匹配)
if(strcmp(str1,str2)==0)
{
return 1;
}
else
{
return 0;
}
}
else
{//不区分大小写(1表示匹配,0表示不匹配)
if(strcmpi(str1,str2)==0)
{
return 1;
}
else
{
return 0;
}
}
}
else if(flag==2)
{//一对多的匹配
for(i=0;str2[i]!='\0';i++)
{
str[0]=str2[i];
if(flag_case)
{//区分大小写(1表示匹配,0表示不匹配)
if(strcmp(str1,str)==0)
{
return 1;
}
}
else
{//不区分大小写(1表示匹配,0表示不匹配)
if(strcmpi(str1,str)==0)
{
return 1;
}
}
}
return 0;//不匹配
}
}

int match_len(char str[])
{//获取str要匹配的长度
int i,flag=1,count_len=0;
for(i=0;str[i]!='\0';i++)
{
switch(str[i])
{
case '[': flag=0;break;//跳过方括号中的
case ']': flag=1;break;
default : ;
}
if(flag)
{
count_len++;
}
}
return count_len;//长度是指str中除去方括号(包括方括号)中长度,并加上1
}

⑸ 这几道C语言题目你能帮忙做做吗VC环境的

第一题:

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

constintN=3;

inti,j,K,II1,JF[2][1000];

floatJ[N+1][N+2],H[1000],UJ[2][1000];

voidmain()

{

voidJBB(float*H,int&II1,intK,intN);//前代过程

voidSBW(intN);//回代过程

JF[1][1]=2;

II1=3;

for(i=1;i<=N;i++)//输入系数及等号右边那数

for(j=1;j<=N+1;j++)

scanf("%f",&J[i][j]);

for(K=1;K<=N;K++)

{

for(i=1;i<=N+1;i++)

H[i]=J[K][i];

JBB(&H[0],II1,K-1,N);

}

SBW(N);

for(i=1;i<=N;i++)

printf("X%d=%f ",i,H[i]);

}

voidJBB(float*H,int&II1,intK,intN)//II1必须为引用

{

intM,NN,I,J,K1,ll;

floatLL,S;

K1=0;

if(II1!=3)

for(I=1;I<=K;I++)

{

M=JF[1][I];

NN=JF[1][I+1]-1;

for(J=M;J<=NN;J++)

{

LL=UJ[1][2*J];

ll=(int)LL;

H[ll]=H[ll]-H[I]*UJ[1][2*J-1];

}

}

K+=1;

S=H[K];

K1=0;

for(I=K+1;I<=N+1;I++)

{

if(fabs(H[I])<1.0E-15)continue;

UJ[1][II1]=H[I]/S;

UJ[1][II1+1]=I;

K1+=1;

II1+=2;

}

if(II1>2000)printf("error ");

JF[1][K+1]=JF[1][K]+K1;

}

voidSBW(intN)

{

intI,J,K,K1,K2,l,ll;

floatL,LL;

for(I=1;I<1000;I++)

H[I]=0;

K1=N;

for(I=K1;I>=1;I--)

{

K=JF[1][I];

K2=JF[1][I+1]-1;

LL=UJ[1][2*K2];

ll=(int)LL;

if(ll!=N+1||K>K2)

K2+=1;

else

H[I]=UJ[1][2*K2-1];

for(J=K;J<=K2-1;J++)

{

L=UJ[1][2*J];

l=(int)L;

H[I]=H[I]-UJ[1][2*J-1]*H[l];

}

}//注意循环嵌套

}

例:见图

⑹ C语言 写一个函数交换两个数的值,为什么一定要用指针

运用代码解释指针运用的理解如下:

#include<iostream>

using namespace std;

int fun1 (int a,int b)

{

int c;

c=a;a=b;b=c;

cout<<"a1:"<<a<<";b1:"<<b<<endl;

}

int fun2 (int *a,int *b)

{

int *c;

c=a;a=b;b=c;

cout<<"a2:"<<*a<<";b2:"<<*b<<endl;

}

int fun3(int *a,int *b)

{

int *c;

c=*a;*a=*b;*b=c;

cout<<"a3:"<<*a<<";b3:"<<*b<<endl;

}

int fun4 (int *a,int *b)

{

int c;

c=*a;*a=*b;*b=c;

cout<<"a4:"<<*a<<";b4:"<<*b<<endl;

}

int fun5 (int &a,int &b)

{

int c;

c=a;a=b;b=c;

cout<<"a5:"<<a<<";b5:"<<b<<endl;

}

int main()

{

int aa=1,bb=2;

fun1(aa,bb);

cout<<"aa1:"<<aa<<";bb1:"<<bb<<endl;

fun2(&aa,&bb);

cout<<"aa2:"<<aa<<";bb2:"<<bb<<endl;

fun3(&aa,&bb);

cout<<"aa3:"<<aa<<";bb3:"<<bb<<endl;

fun4(&aa,&bb);

cout<<"aa4:"<<aa<<";bb4:"<<bb<<endl;

aa=1,bb=2;

fun5(aa,bb);

cout<<"aa5:"<<aa<<";bb5:"<<bb<<endl;

return 0;

}

输出结果为:

a1:2;b1:1

aa1:1;bb1:2

a2:2;b2:1

aa2:1;bb2:2

aa3:1;bb3:2

a4:2;b4:1

aa4:2;bb4:1

a5:2;b5:1

aa5:2;bb5:1

main中调用fun1()时,将实参a,b的值传递给了交换函数,如果此时在swap1中打印,可以看到结果是正确的,但是该过程其实是将aa和bb分别复制了一份给了函数,执行完fun1()之后,aa和bb的值没有任何变化。

fun2(),看似的确使用了指针,但还是失败,因为这里是将aa和bb的地址给交换了,而并没有交换aa和bb的值。在这里由于未给c赋值,c中并没有确定的值,c中的值是不可预见的。此时c可能指向一个未知的存储单元。

而严重的情况是,该单元的数据可能是有用的,因此fun2()不但没有实现两个数的交换,反而给系统的稳定性带来威胁。

fun3(),将int赋卜粗值给int *,编译错误。

fun4()是正确的。为好弊蚂了在函数中改变了的变量能被其它函数调用,正确的办法是用指针变量作为函数参数,在函数执行过程中使指针变量所指向的变量值发生变化。

函数调用结束后,哲别变量值的变化依然保留下来,这样就实现了通过函数调用是变量的值发生变化,在其它函数中可以使用这些改变了的值的目的。

fun5()也是正确的,这是引用的重要应用之一。对于引用的操作实际上是作用在引用所因的对象上。

(6)c语言aa1扩展阅读

在函数中的参数,并不是调用者的变量,而是临时申请的变量a和b存放main函数中变量a和b的值,并在函数中用来计算,在fun中给a和b赋值都是在操作这两个临时申请的变量,函数返回后,这两个变量被舍弃,函数调用也没有将这两个临时变量的值返回给main函数中调用使用的参数功能。

所以,在函数中要操作调用者申请的变量,需要给出它们的指针,函数中用指针来找友埋到这些变量的位置和内容。

⑺ /c++的三角形证明题代码

用c语言写的,你改改就成了c++的语句了誉圆。
用余弦定理做。
#include <math.h>
#define q 2
#define p 1.0*4/3
main()
{float t,s,o=3,r,m,n,x,y,g,v,u,a[3],b[3],c[3],d[3],e[3],f[3];
int i;
scanf("%f",&t);
s=sqrt(o)*t*1.0/2;
r=t*1.0/2;
a[0]=0;a[1]=t;a[2]=r; b[0]=0;b[1]=0;b[2]=s;
for(i=0;i<3;i++)
{c[i]=(a[i]+q*a[i+1])*1.0/(1+q);
d[i]=(b[i]+q*b[i+1])*1.0/(1+q);
}
for(i=0;i<庆乱塌2;i++)
{e[i]=(c[i]+p*a[i+2])*1.0/陪基(1+p);
f[i]=(d[i]+p*b[i+2])*1.0/(1+p);
}
e[2]=(c[2]+p*a[1])*1.0/(1+p);
f[2]=(d[2]+p*b[1])*1.0/(1+p);
m=pow(a[0]-a[1],2);
n=pow(b[0]-b[1],2);
x=pow(e[0]-e[1],2);
y=pow(f[0]-f[1],2);
v=sqrt(m+n);u=sqrt(x+y);
g=1.0*v*v/(u*u);
printf("%f",g);
}

⑻ C语言中为什么函数形参中二级指针和一级指针指输出的结果一样

兄弟,那个不是一级指针,那是指针数组
指针数组作为函数形参时会自动转换为指针的指针,也就是你说的二级指针

char **p=book;从这一行也能证谈伍明我说的,自动转换

特别注意:它只会转换数组的最内层扒肢(含此或我有点分不清内外)
int arr[2][6];
int (*aa)[6] = arr;//对
//int *aa1[6] = arr;//错
//int (*aa2)[2] = arr;//错
//int (*aa3)[] = arr;//错
//int *aa4 = arr;//错
//int **aa5 = arr; //错

⑼ C语言字符数组如何转成16进制

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

⑽ c语言文件中字符串的查找与替换问题

楼主,这种算法不够缜密,
如果文件是:
11123aa112aa
你要查找的是112的话,差神隐就会漏了前面的一个112了。
字符串虚厅瞎毁匹配建议采用
KMP算法。

热点内容
linux64位内存 发布:2025-07-16 01:02:36 浏览:959
压缩衣尺码表 发布:2025-07-16 00:47:33 浏览:639
安卓恢复了出厂怎么找回照片 发布:2025-07-16 00:43:56 浏览:932
为什么说服务器已停止响应 发布:2025-07-16 00:29:36 浏览:391
python判断字符串是否为空 发布:2025-07-16 00:21:47 浏览:210
安卓转苹果用什么软件 发布:2025-07-16 00:21:45 浏览:628
安卓官服如何登ios 发布:2025-07-16 00:21:32 浏览:624
天龙抢店脚本 发布:2025-07-16 00:14:47 浏览:958
华为荣耀存储卡 发布:2025-07-16 00:10:40 浏览:659
mysql创建utf8数据库 发布:2025-07-16 00:04:08 浏览:105