當前位置:首頁 » 編程語言 » c語言專科代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言專科代碼

發布時間: 2022-11-21 00:54:07

⑴ 求助c語言課程代碼是多少

哈哈哈,你是來搞笑的吧

⑵ 求數據結構(c語言版)程序源代碼

1 #include <string.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 #define MAX_POS_NUM 100
6 #define MAX_STR_LEN 1024
7
8
9 //1. get all position of str_z in str_x
10 int get_sub_str_pos(const char * str_x, const char * str_z, int sub_str_pos[])
11 {
12 if (NULL == str_x || NULL == str_z)
13 {
14 printf("in error!\n");
15 return -1;
16 }
17
18 const char * pos_ptr = NULL;
19
20 pos_ptr = strstr(str_x,str_z);
21
22 int i=0;
23 while(pos_ptr)
24 {
25 printf("substring positon:%d\n",pos_ptr-str_x+1);
26 sub_str_pos[i] = pos_ptr - str_x + 1;
27 pos_ptr = strstr(pos_ptr+strlen(str_z),str_z);
28 i++;
29 }
30
31 return 0;
32 }
33
34 //2. get max length common string of str_x and str_y
35 char * get_max_com_str(const char * str_x, const char * str_y)
36 {

37 int x_len = strlen(str_x);
38 int y_len = strlen(str_y);
39
40 char * tmp_str = new char[y_len+1];
41
42 for(int i=y_len; i>0; i--) // i is substring length
43 {
44 if (i>x_len)
45 continue;
46 for(int j=0;j<=y_len-i; j++) // j is substring start postion
47 {
48 snprintf(tmp_str,i+1,"%s",str_y);
49 if (strstr(str_x,tmp_str))
50 {
51 printf("%s\n",tmp_str);
52 printf("max common substring length:%d\n",i);
53 return tmp_str;
54 }
55 }
56 }
57
58 return NULL;
59 }
60
61 //3. replace all substring in question 1
62 char * replace_sub_str(const char * str_x, char * max_com_str, int sub_str_pos[], int sub_str_len)
63 {
64 char * replaced_str = new char[MAX_STR_LEN];
65
66 int sub_pos = sub_str_pos[0];
67 int l=0; // l is sub_str_pos index
68 int i=0,j=0; //i is str_x pos, j is replaced_str pos
69
70 while(*str_x)

71 {
72 if (i==sub_pos-1) // replace from this position
73 {
74 // printf ("i:%d,\n",i);
75 for (int k=0; k<strlen(max_com_str); k++)
76 {
77 *(replaced_str + j) = * (max_com_str + k);
78 j++;
79 }
80 i += sub_str_len;
81 str_x += sub_str_len;
82 l++;
83 sub_pos = sub_str_pos[l];
84 continue;
85 }
86 *(replaced_str+j) = *str_x++;
87 i++;
88 j++;
89 }
90
91 * (replaced_str + j) = '\0';
92
93 return replaced_str;
94 }
95
96 int main()
97 {
98 const char * str_x = "abcabcabc";
99 const char * str_y = "cabcd";
100 const char * str_z = "abc";
101
102 int sub_str_pos [MAX_POS_NUM] = {0};
103
104 char * max_com_str = NULL;

105
106 char * replaced_str = NULL;
107
108 get_sub_str_pos(str_x,str_z,sub_str_pos);
109 max_com_str = get_max_com_str(str_x,str_y);
110
111 printf("max common str: %s\n",max_com_str);
112
113 replaced_str = replace_sub_str(str_x, max_com_str, sub_str_pos, strlen(str_z));
114 printf("repalced str: %s\n",replaced_str);
115
116 return 0;
117 }

⑶ c語言編程有問題,高手幫忙看下代碼呀~~

#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <iostream.h>

int rinv(double a[],int n) ;

void main()
{
int i,j;
static double a[4][4]={0.2368,0.2471,0.2568,1.2671,1.1161,0.1254,0.1397,0.1490,0.1582,1.1675,0.1768,0.1871,0.1968,0.2071,1.2168,0.2271};
static double b[4][4];
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
b[i][j]=a[i][j];
i=rinv(a[0],4);
if(i!=0)
{cout<<"MAT A IS:"<<endl;
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)
printf("%13.7e",b[i][j]);
printf("\n");
}
printf("\n");
cout<<"MAT A- IS:"<<endl;
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)
printf("%13.7e",a[i][j]);
printf("\n");
}
}
}

int rinv(double a[],int n)
{ int *is,*js,i,j,k,l,u,v;
double d,p;
is=(int *)malloc(n*sizeof(int));
js=(int *)malloc(n*sizeof(int));
for(k=0;k<=n-1;k++)
{d=0.0;
for(i=k;i<=n-1;i++)
for(j=k;j<=n-1;j++)
{
l=i*n+j;p=fabs(a[1]);
if (p>d){d=p;is[k]=i;js[k]=j;}
}
if (d+1.0==1.0)
{free(is);free(js);
printf("err**not inv\n");
return(0);
}
if(is[k]!=k)
for(j=0;j<=n-1;j++)
{u=k*n+j;v=is[k]*n+j;
p=a[u];a[u]=a[v];a[v]=p;
}
if(js[k]!=k)
for(i=0;i<=n-1;i++)
{u=i*n+k;v=i*n+js[k];
p=a[u];a[u]=a[v];a[v]=p;
}
l=k*n+k;
a[1]=1.0/a[1];
for(j=0;j<=n-1;j++)
if(j!=k)
{u=k*n+j;a[u]=a[u]*a[1];}
for(i=0;i<=n-1;i++)
if(i!=k)
for(j=0;j<=n-1;j++)
if(j!=k)
{u=i*n+j;
a[u]=a[u]-a[i*n+k]*a[k*n+j];
}
for(i=0;i<=n-1;i++)
if(i!=k)
{u=i*n+k;a[u]=-a[u]*a[l];}
}
for(k=n-1;k>=0;k--)
{if(js[k]!=k)
for(j=0;j<=n-1;j++)
{u=k*n+j;v=js[k]*n+j;
p=a[u];a[u]=a[v];a[v]=p;
}
if(is[k]!=k)
for(i=0;i<=n-1;i++)
{u=i*n+k;v=i*n+is[k];
p=a[u];a[u]=a[v];a[v]=p;
}
}
free(is);free(js);
return(1);
}

問題1:rinv函數要聲明.如果不聲明,就把函數放到main前面去.
問題2:=rinv(a,4);不能這么寫,因為a是一個二維數組,而你的函數定義為一維的,因此我改為i=rinv(a[0],4); 效果是一樣的.

⑷ 急求C語言的代碼

#include <stdio.h>
#include <string.h>

/*定義一個函數,用指向字元串的指針匹配子字元串*/
int match(char * str, char * str1, char * str2, char * a_str);

int main()
{

/*定義兩個字元數組,分別存儲主字元串和子字元串*/
char mother[256],child[256];
/*定義一個字元串,用於替換子字元串*/
char change[256];
/*定義一個字元串,保存替換後的字元串*/
char af_change[256]="";
/*定義一個整型值,記錄匹配結果*/
int result;

printf("匹配字元串:\n");
printf("請輸入主字元串:\n");
gets(mother);
printf("請輸入子字元串:\n");
gets(child);
printf("請輸入替換的字元串:\n");
gets(change);
result=match(mother,child,change,af_change);
if (result==1)
{

printf("匹配和替換均成功!\n");
printf("替換後的字元串是:%s\n",af_change);

}
else if (result==0)

printf("匹配成功但替換失敗!\n");

else

printf("匹配失敗!\n");

return 0;

}

/*定義一個函數,用指向字元串的指針匹配子字元串*/
int match(char * str, char * str1, char * str2, char * a_str)
{

/*定義兩個整型變數表示字元串的長度*/
int l1,l2;
/*定義指向字元串的指針,其中q1指向子字元串在主串中的位置,q2指向子字元串的位置*/
char * p, * q1=NULL,* q2,* t;
/*定義一個指向替換後的字元串指針*/
char *cc;
char *change[256];/*保存匹配成功時,子串在母串中的位置*/
int i,j; /*循環控制變數*/

/*對子串在母串中的位置進行初始化*/
for (i=0; i<256; i++) change[i]=NULL;

/*求出字元串的長度*/
l1=strlen(str1);
l2=strlen(str2);

/*對指針進行賦值*/
p=str;

/*字元串匹配過程*/
i=0;
for (p; *p!='\0'; p++)
{

q1=p;
q2=str1;
while ((*q2!='\0')&&(*q2==*q1))
{

q1++;
q2++;

}
if (*q2=='\0')/*匹配成功*/
{

change[i]=q1-l1;
i++;

}

}
if (i==0) /*匹配失敗*/

return -1;

/*匹配成功後進行字元串替換過程*/
if (l1!=l2) /*替換後的字元串與原子字元串長度不等,無法替換*/
return 0;
cc=a_str;
p=str;
for (j=0; j<i; j++)/*對匹配的多個子串進行替換*/
{

while (p<change[j])/*復制母串中匹配前的字元*/
{

*a_str=*p;
a_str++;
p++;

}
for (t=str2; *t!='\0'; a_str++,t++) /*替換子字元串*/

*a_str=*t;

p+=l1;

}
if (*p!='\0') /*全部匹配字元串都替換完了,但母串未結束*/
while (*p!='\0')
{

*a_str=*p;
a_str++;
p++;

}
*a_str='\0';
a_str=cc;
return 1;

}
你的串號我已經記下,採納後我會幫你製作

⑸ C語言代碼

#include<stdio.h>
#include<stdlib.h>
#include <conio.h>

#define n 30
struct student
{ char name[8];
int score;
} R[n];

main ( )
{ int num, i, j, max, temp;
printf("\n請輸入學生成績: \n");
for (i=0; i<n; i++)
{
printf ("姓名:");
scanf ("%s", R[i].name);
printf ("成績:");
scanf ("%d", &(R[i].score));
}
num=1;
for (i=0; i<n; i++)
{ max=i;
for (j=i+1; j<n; j++)
if (R[j].score>R[max].score)
max=j;
if (max!=i)
{ temp = R[max].score;
R[max]=R[i];
R[i].score= temp;
}
if ((i>0)&&(R[i].score<R[i-1].score))
num=num+1;
printf("%4d%s%4d", num, R[i].name, R[i].score);
}

getch();
}

⑹ C語言 入門 代碼 求解

換種寫法

由此可見,

當i=1,進入紅色

j=1,進入藍色

k=1,進入綠色

綠色輸出1,1,1

退出綠色,k++後k=2,此時k<5

在k=2的情況下,進入綠色(沒有觸發i,j變化)

……

⑺ c語言編程代碼

#include<stdio.h>

#include<stdlib.h>


int main(){

int a ;

char c;

scanf("%d, %c", &a, &c);

printf("%d,%c", a, c);

system("pause");

return 0;

}


⑻ 求個C語言程序的源代碼

1樓的想惡搞
千萬別編譯運行
不是關機就是注銷或重啟之類的
看那名字shutdown就知道
我寫個九九乘法表吧
#include<stdio.h>
int main(){
int i,j;
for(i=1;i<10;++i){
for(j=1;j<10;++j){
printf("%dX%d=%-2d ",i,j,i*j);
}
putchar('\n');
}
return 0;
}
請採納為最佳答案,謝謝

⑼ c語言代碼編寫的格式

C語言 程序代碼編寫規范
(初級程序員 討論版)
前言
一個好的程序編寫規范是編寫高質量程序的保證。清晰、規范的源程序不僅僅是方便閱讀,更重要的是能夠便於檢查錯誤,提高調試效率,從而最終保證軟體的質量和可維護性。
說明
l 本文檔主要適用於剛剛開始接觸編程的初學者。
l 對於具有一定工程項目開發經驗的程序員,建議學習C語言程序代碼編寫規范—高級版。
目錄
1 代碼書寫規范
2 注釋書寫規范
3 命名規范
4 其它一些小技巧和要求
1 代碼書寫規范
1.1函數定義
花括弧: { }
每個函數的定義和說明應該從第1列開始書寫。函數名(包括參數表)和函數體的花括弧應該各佔一行。在函數體結尾的括弧後面可以加上注釋,注釋中應該包括函數名,這樣比較方便進行括弧配對檢查,也可以清晰地看出來函數是否結束。
範例1:函數的聲明
void matMyFunction(int n)
{
……
} /* matMyFunction*/
1.2空格與空行的使用
要加空格的場合
l 在逗號後面和語句中間的分號後面加空格,如:
int i, j, k;
for (i = 0; i < n; i++)
result = func(a, b, c);
l 在二目運算符的兩邊各留一個空格,如
a > b a <= b i = 0
l 關鍵字兩側,如if () …, 不要寫成if() …
l 類型與指針說明符之間一定要加空格:
char *szName;
不加空格的場合
l 在結構成員引用符號.和->左右兩加不加空格:
pStud->szName, Student.nID
l 不在行尾添加空格或Tab
l 函數名與左括弧之間不加空格:
func(…)
l 指針說明符號*與變數名間不要加空格:
int *pInt; 不要寫成: int * pInt;
l 復合運算符中間不能加空格,否則會產生語法錯誤,如:
a + = b a < = b 都是錯誤的
空行與換行
l 函數的變數說明與執行語句之間加上空行;
l 每個函數內的主要功能塊之間加空行表示區隔;
l 不要在一行中寫多條語句.
範例2:空行與換行
int main()
{
int i, j, nSum = 0; //變數說明

for (i = 0; i < 10; i++) //執行代碼
{
for (j = 0; j < 10; j++)
{
nSum += i;
}
}
}
1.3縮進的設置
根據語句間的層次關系採用縮進格式書寫程序,每進一層,往後縮進一層
有兩種縮進方式:1,使用Tab鍵;2,採用4個空格。
整個文件內部應該統一,不要混用Tab鍵和4個空格,因為不同的編輯器對Tab鍵的處理方法不同。
1.4折行的使用
· 每行的長度不要超過80個字元,當程序行太長時,應該分行書寫。
· 當需要把一個程序行的內容分成幾行寫時,操作符號應該放在行末。
· 分行時應該按照自然的邏輯關系進行,例如:不要把一個簡單的邏輯判斷寫在兩行上。
· 分行後的縮進應該按照程序的邏輯關系進行對齊。例如:參數表折行後,下面的行應該在參數表左括弧的下方。
範例2:折行的格式
dwNewShape = matAffineTransform(coords, translation,
rotation);
if (((new_shape.x > left_border) &&
(new_shape.x < right_border)) &&
((new_shape.y > bottom_border) &&
(new_shape.y < top_border)))
{
draw(new_shape);
}
1.5嵌套語句(語句塊)的格式
對於嵌套式的語句--即語句塊(如,if、while、for、switch等)應該包括在花括弧中。花括弧的左括弧應該單獨佔一行,並與關鍵字對齊。建議即使語句塊中只有一條語句,也應該使用花括弧包括,這樣可以使程序結構更清晰,也可以避免出錯。建議對比較長的塊,在末尾的花括弧後加上注釋以表明該語言塊結束。
範例3:嵌套語句格式
if (value < max)
{
if (value != 0)
{
func(value);
}
}
} else {
error("The value is too big.");
} /* if (value < max) */
2 注釋書寫規范
注釋必須做到清晰,准確地描述內容。對於程序中復雜的部分必須有注釋加以說明。注釋量要適中,過多或過少都易導致閱讀困難。
2.1注釋風格
· C語言中使用一組(/* … */)作為注釋界定符。
· 注釋內容盡量用英語方式表述。
· 注釋的基本樣式參考範例4。
· 注釋應該出現在要說明的內容之前,而不應該出現在其後。
· 除了說明變數的用途和語言塊末尾使用的注釋,盡量不使用行末的注釋方式。
範例4:幾種注釋樣式
/*
* ************************************************
* 強調注釋
* ************************************************
*/
/*
* 塊注釋
*/
/* 單行注釋 */
//單行注釋
int i; /*行末注釋*/
2.2何時需要注釋
· 如果變數的名字不能完全說明其用途,應該使用注釋加以說明。
· 如果為了提高性能而使某些代碼變得難懂,應該使用注釋加以說明。
· 對於一個比較長的程序段落,應該加註釋予以說明。如果設計文檔中有流程圖,則程序中對應的位置應該加註釋予以說明。
· 如果程序中使用了某個復雜的演算法,建議註明其出處。
· 如果在調試中發現某段落容易出現錯誤,應該註明。
3 命名規范
3.1常量、變數命名
l 符號常量的命名用大寫字母表示。如:
#define LENGTH 10
l 如果符號常量由多個單詞構成,兩個不同的單詞之間可以用下劃線連接。如:
#define MAX_LEN 50
變數命名的基本原則:
l 可以選擇有意義的英文(小寫字母)組成變數名,使人看到該變數就能大致清楚其含義。
l 不要使用人名、地名和漢語拼音。
l 如果使用縮寫,應該使用那些約定俗成的,而不是自己編造的。
l 多個單片語成的變數名,除第一個單詞外的其他單詞首字母應該大寫。如:
dwUserInputValue。
3.2函數命名
函數命名原則與變數命名原則基本相同。對於初學者,函數命名可以採用「FunctionName」的形式。
4 其它一些小技巧和要求
l 函數一般情況下應該少於100行
l 函數定義一定要包含返回類型,沒有返回類型加void
l 寫比較表達式時,將常量放在左邊
10 == n
NULL != pInt
l 指針變數總是要初始或重置為NULL
l 使用{}包含復合語句,即使是只有一行,如:
if (1 == a)
{
x = 5;
}
http://home.ustc.e.cn/~danewang/c/CodingStandards.html

⑽ c語言求助 (下列代碼求錯誤)

# include <stdio.h>
# include <math.h> //補上這一句,下面的 sqrt() 函數就可以使用了

int main(void)
{
int a = 1;
int b = 2;
int c = 3;
double delta;
double x1;
double x2;
delta = b*b - 4*a*c;

if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b + sqrt(delta)) / (2*a);
printf ("該一元二次方程有兩個解, X1 = %f, x2 = %f\n", x1, x2);
}
else if (delta == 0)
{
x1 = (-b) / (2*a);
x2 = x1;
printf("該一元二次方程有一個唯一解, x1 = x2 = %f\n", x1);
}
else
{
printf("無解\n");
}

return 0;
}