當前位置:首頁 » 編程語言 » 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演算法。

熱點內容
艾派密碼是什麼 發布:2025-07-15 18:47:40 瀏覽:587
密碼鎖如何在裡面開門 發布:2025-07-15 18:35:00 瀏覽:520
額溫演算法 發布:2025-07-15 18:18:14 瀏覽:727
ie客戶端事件腳本執行異常 發布:2025-07-15 18:10:13 瀏覽:24
自製壓縮兔糧 發布:2025-07-15 18:09:25 瀏覽:11
腳本病毒的危害 發布:2025-07-15 18:04:00 瀏覽:259
簡單的解壓 發布:2025-07-15 17:42:25 瀏覽:148
lol最強腳本 發布:2025-07-15 17:41:45 瀏覽:290
安卓手機測量工具在哪裡 發布:2025-07-15 17:41:39 瀏覽:241
易語言灰鴿子源碼 發布:2025-07-15 17:37:08 瀏覽:869