1樓:mexico卡卡
#include//標準輸入輸出庫所在的標頭檔案
//自定義函式宣告
void add(int *m,int *m1,int *m2,int r,int c); //矩陣加法
void sub(int *m,int *m1,int *m2,int r,int c); //矩陣減法
void mult(int *m,int *m1,int *m2,int r,int p,int c); //矩陣乘法
void disp(int *m,int r,int c); //列印陣列資料(矩陣裡的資料)
//主測試函式
void main()
,,};
int b[3][4]=,,};
int c[4][3]=,,,};
int d[3][4]=;
int e[3][4]=;
int f[3][3]=;
printf("\na(3x4):\n");
disp(a[0],3,4); //顯示矩陣a
printf("\nb(3x4):\n");
disp(b[0],3,4); //顯示矩陣b
add(d[0],a[0],b[0],3,4); // 計算矩陣 a + b,並將結果存到d中
printf("\nd(3x4)=a+b:\n");
disp(d[0],3,4); //顯示a+b的結果(即d中的資料)
sub(e[0],a[0],b[0],3,4);// 計算矩陣 a - b,並將結果存到e中
printf("\ne(3x4)=a-b:\n");
disp(e[0],3,4);//顯示a-b的結果(即e中的資料)
printf("\na(3x4):\n");
disp(a[0],3,4); // 顯示矩陣a
printf("\nc(4x3):\n");
disp(c[0],4,3); //顯示矩陣c
mult(f[0],a[0],c[0],3,4,3); //計算矩陣a*c 並將結果存到f中
printf("\nf(3x3)=a*c:\n");
disp(f[0],3,3); //顯示a*c的結果(即f中的資料)
}//函式定義
/* *****函式功能:兩個矩陣進行加法運算 c = a+b
*****引數: m 指向運算結果存放的二維陣列(即矩陣) c的首地址
***** m1為矩形a的首地址,m2為矩形b的首地址
***** r 為矩陣的行數, c為矩陣的列數
*(m+i*c+j) = *(m1+i*c+j) + *(m2+i*c+j);這個表示將矩陣a的第i行j列的資料 與 矩陣b的第i行j列的資料 相加
然後將結果賦值給矩陣c的第i行j列資料
*(m1+i*c+j) :m1+i*c+j 這個表示指向矩陣a的第i行第j列的資料的指標,則 *(m1+i*c+j) 就表示矩陣a的第i行第j列的資料
*(m2+i*c+j) :m2+i*c+j 這個表示指向矩陣b的第i行第j列的資料的指標,則 *(m2+i*c+j) 就表示矩陣b的第i行第j列的資料
*(m+i*c+j) : m+i*c+j 這個表示指向矩陣c的第i行第j列的資料的指標,則 *(m+i*c+j) 就表示矩陣c的第i行第j列的資料
這裡是用指標實現的,
*(m+i*c+j) = *(m1+i*c+j) + *(m2+i*c+j);
等價於c[i][j] = a[i][j] + b[i][j];
*/void add(int *m,int *m1,int *m2,int r,int c) //
//註釋與上邊加法類似
void sub(int *m,int *m1,int *m2,int r,int c) //兩個矩陣之間的減法運算
/*註釋與上邊類似,因為矩陣乘法運算公式較為複雜一些,可自行對照矩陣乘法運算公式
如矩陣c = a * b
for(k=0; k
t += *(m1+i*p+k) * *(m2+k*c+j); //表示將m1的第i行k列的資料 與 m2的第k行j列的資料相乘 ,
//並將p (k的值從0到p) 次結果進行累加
*(m+i*c+j)=t; //最後將這個累加的結果賦值給矩陣c的第i行第j列的資料
*/void mult(int *m,int *m1,int *m2,int r,int p,int c)//兩個矩陣之間的乘法運算
}//顯示列印矩陣中的資料
void disp(int *m,int r,int c)}
2樓:夢醒
一般來講有兩種:
一是單行註釋:直接在該行需要註釋的地方加上"//"就行了。例如:
"int a,b;//這是一個註釋行"。那麼,"//"後面的部分"這是一個註釋行"就被註釋掉了,不起作用,但是"//"前面的「int a,b;"不受影響。
另外還有一種是多行同時註釋:
/*int a,b;
int c,d;
*/其中"/*"和"*/"起限定範圍的作用,該範圍內的語句都會被註釋掉,將不再起作用。當然,多行註釋也是可以用來單行註釋的
3樓:仲桂花僧凰
答:在用c語言程式設計時,常用的註釋方式有如下幾種:
(1)單行註釋
//…(2)多行註釋
/*…*/
(3)條件編譯註釋
#if0…#endif
拓展資料:
對於(1),註釋只能顯示在一行內,通常出現在一條語句的右邊或者上方,對於註釋符」//」,一個註釋裡只要有多餘2個』/』都可以。
對於(2),」/*…*/」不能巢狀使用,正如」if…else」中的」else」總是和隔它最近的」if」配對一樣,」/*」總是和離它最近的」*/」相配對。
針對(1)和(2)各自的缺陷,資深的程式設計師提出如(3)所示的註釋,該註釋的好處是能註釋大塊的程式,並且沒有巢狀的限制,也就是說在」#if
0…#endif」的」…」處可以有」//」或」/*…*/」這樣的註釋。
4樓:匿名使用者
你寫的程式中使用了 /*...*/ 的註釋符,其意義為註釋掉它們之間的全部內容,可以註釋多行。也就是說,你已經把語句"b = 20;"註釋掉了。
程式後面由於有使用變數b,所以程式會出現邏輯錯誤,b沒有被賦值為20,它的值仍然是0。後面的註釋沒有問題。
5樓:光秀珍易茶
變數、保留字的字元之間不能有註釋其他任何位置都可以加註釋包括:一、單獨一行可以在任何位置
二、與其他語句在一行,可以在末尾
三、在一行的首位置
四、在中間的任意位置
當然這裡的註釋是指/*
*/這樣的有界限的不是//這樣的註釋,//只使用與第一二兩種情況。
6樓:老猴子不會胖
註釋有兩種
// 適用於一行,從//開始到此行結束都是註釋/* */ 適用於大塊註釋 從/*開始 到*/結束裡面都是註釋,不管幾行
你的問題,是
/*,<*/ 說明 , < 是註釋內容
7樓:
1、可以使用/*和*/分隔符來標註一行內的註釋,也可以標註多行的註釋。例如,在下列的函式原型中,省略號的意思是 open() 函式有第三個引數,它是可選引數。註釋解釋了這個可選引數的用法:
int open( const char *name, int mode, … /* int permissions */ );
2、可以使用//插入整行的註釋,或者將源**寫成兩列分欄的格式,程式在左列,註釋在右列:
const double pi = 3.1415926536; // pi是—個常量
擴充套件資料
在 c99 標準中,單行註釋正式加入c語言,但是大部分編譯器在 c99 之前就已經開始支援這種用法。有時候,其被稱作「c++風格」的註釋,但實際上,其源自於c的前身 bcpl。
1、在引號中,如果採用/*或//分隔一個字元常量或字串字面量(string literal),它們都不會被視為註釋的開始。例如,下面語句就沒有註釋:
printf("comments in c begin with /* or //.\n" );
2、前處理器僅通過檢查註釋的結束符來檢測註釋中的字元,因此,不能巢狀塊註釋。然而,可以使用/*和*/註釋包含單行註釋的源**:
/* 暫時註釋掉這兩行:
const double pi = 3.1415926536; // pi是一個常量
area = pi * r * r; // 計算面積
暫時註釋到此 */
c程式去註釋,c語言如何註釋?
這個程式應該不難吧,給你個大概的思路。開啟你的c程式原始檔,依次讀取字元,判斷字元是否在 之間,如果是則忽略,否則寫入另一檔案,直到檔案尾,這樣,就把註釋去掉了。思路同樓上,很象括號匹配問題,資料結構可以用 棧 來程式設計實現,幾乎每本資料結構的書都有括號匹配的問題哦。額 有這程式?讀取每個檔案 找...
c語言中可以對程式進行註釋,註釋部分如果佔多行,必須以 開
啊啦拉韓玫 以註釋內容開始。關於程式中註釋書寫格式 1程式檔案註釋 放在程式名稱空間引用 using system.io 的上面,主要寫公司的版權 檔案建立的時間 檔案的主要內容 檔案的名字 檔案的建立標識 建立人姓名 檔案修改的時間 檔案修改時的修改標識 修改人姓名 檔案修改的修改原因等 詳情見文...
c語言中如何輸出各種常量,C語言中如何輸出各種常量
風若遠去何人留 c語言輸出常量和輸出變數是相同的。均可以用printf帶各種格式符號執行輸出。常用的型別包括 1 整型,int,使用格式為 d 2 短整型,short,使用格式為 h 3 長整型,long,使用格式為 ld 4 字元型,char,使用格式為 c 5 字元指標型,char 使用格式為 ...