C語言第二次實驗報告

2022-08-19 21:36:09 字數 2111 閱讀 5914

一.實驗題目,設計思路,實現方法

1.實驗題目

11-4 判斷上三角矩陣(15 分)

上三角矩陣指主對角線以下的元素都為0的矩陣;主對角線為從矩陣的左上角至右下角的連線。

本題要求編寫程式,判斷乙個給定的方陣是否上三角矩陣。

12-3 字串逆序(15 分)

輸入乙個字串,對該字串進行逆序,輸出逆序後的字串。

13-6 陣列迴圈右移(20 分)

本題要求實現乙個對陣列進行迴圈右移的簡單函式:乙個陣列a中存有n(>)個整數,將每個整數迴圈向右移m(≥)個位置,即將a中的資料由(a​0​​a​1​​⋯a​n−1​​)變換為(a​n−m​​⋯a​n−1​​a​0​​a​1​​⋯a​n−m−1​​)(最後m個數迴圈移至最前面的m個位置)。

14-5 指定位置輸出字串(20 分)

本題要求實現乙個函式,對給定的乙個字串和兩個字元,列印出給定字串中從與第乙個字元匹配的位置開始到與第二個字元匹配的位置之間的所有字元。

15-8 十進位制轉換二進位制(15 分)

本題要求實現乙個函式,將正整數n轉換為二進位制後輸出。

2.設計思路:

11-4:判斷上三角矩陣:

分兩次迴圈,外層迴圈用來確定行數,內層迴圈用來檢視所指的元素是否是0.從第0行開始算起,每一行的第i個元素前必須是0,當不是0時,即跳出迴圈。並判斷這不是乙個上三角矩陣。

12-3:字串逆序:

從字串末尾往前遍歷,乙個個輸出字元。

13-6:陣列迴圈右移:

通過直接的方法右移過於麻煩,所以選擇新建乙個陣列,位移之後的資料位置是m%n,根據這個特性進行迴圈,將資料輸入新的陣列。

14-5:特定位置輸出字串:

設定乙個處於s開頭的指標,每當s!=ch1時,指標指向下乙個元素。如果s==ch1,則到空或者ch2前,指標每移動一次,就計數一次。在程式的最後,指標減去計數的次數。

15.8:十進位制轉二進位制:

通過不停/2,然後反向輸出的原理,利用遞迴方法完成程式即可。

二.源程式

11-4:判斷上三角矩陣:

#include#include

intmain()

for(j=1;j)

}if(count==0

) strcpy(s[c],

"yes");

else

strcpy(s[c], "no

");c++;

}for(i=0;i)

printf(

"%s\n

",s[i]);

return0;

}

12-3:字串逆序:

#include#include

intmain()

return0;

}

13-6 陣列迴圈右移:

int arrayshift( int a, int n, int

m )

for(i=0;i1;i++)

for(i=0;i)

}

14-5 指定位置輸出字串:

char *match( char *s, char ch1, char

ch2 )

if(*s==ch2)

printf(

"%c\n

",*s);

else

printf("\n

");s-=m;

return

s;}

15.8:十進位制轉二進位制:

void dectobin( int

n ) }

}

三.遇到的問題及解決方法,心得體會

初次接觸到指標和遞迴的時候有些理解不了其中的原理,看了書也是一知半解。只有在較為大量的程式編寫的過程中,我才逐漸明白了其中的原理。程式設計是需要實際操作的學科,熟能生巧。

C語言第二次實驗報告

一 目的 掌握二維陣列的定義 賦值 使用和輸入輸出方法 掌握字元陣列和字串的使用。掌握指標的概念,會定義和使用指標變數,正確使用變數 陣列 字串的指標和指向變數的指標變數。學習單向鍊錶的建立 刪除 插入 無序 有序 輸出 排序 選擇 插入 冒泡 反序等等。熟悉遞迴函式的基本思想,掌握數值型與非數值型...

C語言第二次實驗報告

乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。int a 6 6 int n scanf d n int i,j for i 0 ia j k if i y if flag 0 printf d d i,k else printf...

C語言第二次實驗報告

題1 11 6 方陣迴圈右移 20 分 本題要求編寫程式,將給定n n方陣中的每個元素迴圈向右移m個位置,即將第0 1 n 1列變換為第n m n m 1 n 1 0 1 n m 1列。題2 12 5 查詢指定字元 15 分 本題要求編寫程式,從給定字串中查詢某指定的字元。題3 13 5 判斷回文字...