Coursera 計算導論與C語言基礎 第十周

2021-08-19 02:02:07 字數 4602 閱讀 4385

程式設計題#1:求字母的個數

在乙個字串中找出母音字母a,e,i,o,u出現的次數。

輸入一行字串(字串中可能有空格,請用cin.getline(s,counts)方法把一行字串輸入到字元陣列s中,其中counts是s的最大長度,這道題裡面可以直接寫80。),字串長度小於80個字元。

輸出一行,依次輸出a,e,i,o,u在輸入字串中出現的次數,整數之間用空格分隔。

#includeusing namespace std;

int main()

; int a,e,i,o,u;

a=e=i=o=u=0;

cin.getline(x,80);

for(int i=0;i<80;i++)

printf("a的次數:%d\ne的次數:%d\ni的次數:%d\no的次數:%d\nu的次數:%d\n",a,e,i,o,u);

return 0;

}

程式設計題#2:忽略大小寫比較字串大小

一般我們用strcmp可比較兩個字串的大小,比較方法為對兩個字串從前往後逐個字元相比較(按ascii碼值大小比較),直到出現不同的字元或遇到'\0'為止。如果全部字元都相同,則認為相同;如果出現不相同的字元,則以第乙個不相同的字元的比較結果為準。但在有些時候,我們比較字串的大小時,希望忽略字母的大小,例如"hello"和"hello"在忽略字母大小寫時是相等的。請寫乙個程式,實現對兩個字串進行忽略字母大小寫的大小比較。

輸入為兩行,每行乙個字串,共兩個字串。(請用cin.getline(s,80)錄入每行字串)(每個字串長度都小於80)

輸出如果第乙個字串比第二個字串小,輸出乙個字元"<"

如果第乙個字串比第二個字串大,輸出乙個字元">"

如果兩個字串相等,輸出乙個字元"="

#include#includeusing namespace std;

int main()

; char y[80]=;

int result=0;

printf("輸入第一行:");

cin.getline(x,80);

printf("輸入第二行:");

cin.getline(y,80);

for(int i=0;i<80;i++)

result=strcmp(x,y);

if(result>0) printf(">");

else if(result<0) printf("<");

else printf("=");

return 0;

}

程式設計題#3:最長單詞2

乙個以'.'結尾的簡單英文句子,單詞之間用空格分隔,沒有縮寫形式和其它特殊形式

輸入乙個以'.'結尾的簡單英文句子(長度不超過500),單詞之間用空格分隔,沒有縮寫形式和其它特殊形式

輸出該句子中最長的單詞。如果多於乙個,則輸出第乙個

網上答案:

#include using namespace std;

int main()

; cin.getline(s, 500);

int count = 0; //count用來記錄單詞的長度

int count_max = 0; //count_max用來記錄最長單詞的長度

int end = 0;

int i = 0;//end用來記錄最長單詞的末尾位置

while (i<500)

i++;

} if (s[i] == ' ')

if (s[i] == '.' || s[i] == '\0')

}for (int i = end-count_max+1; i < end+1; i++)

cout << endl;

}

程式設計題#4:矩陣交換行

在main函式中, 生成乙個5*5的矩陣,輸入矩陣資料,並輸入n,m的值。判斷n,m是否在陣列範圍內,如果不在,則輸出error;如果在範圍內,則將n行和m行交換,輸出交換n,m後的新矩陣。

輸入5*5矩陣的資料,以及n和m的值。

輸出如果不可交換,則輸出error,

如果可交換,則輸出新矩陣

題目中的「n,m在陣列範圍」內是指數組內的數值還是指行列的範圍???

程式設計題#5:異常細胞檢測

我們拍攝的一張ct**用乙個二維陣列來儲存,假設陣列中的每個點代表乙個細胞。每個細胞的顏色用0到255之間(包括0和255)的乙個整數表示。我們定義乙個細胞是異常細胞,如果這個細胞的顏色值比它上下左右4個細胞的顏色值都小50以上(包括50)。陣列邊緣上的細胞我們不檢測。現在我們的任務是,給定乙個儲存ct**的二維陣列,寫程式統計**中異常細胞的數目。

輸入第一行包含乙個整數n(100>=n>2).

下面有 n 行,每行有 n 個0~255之間的整數,整數之間用空格隔開。

輸出輸出只有一行,包含乙個整數,為異常細胞的數目。

#includeint main()

printf("輸入數目:");

for(i=0;i=50)

word++;

if((a[i+1][j]-a[i][j])>=50)

word++;

if((a[i][j-1]-a[i][j])>=50)

word++;

if((a[i][j+1]-a[i][j])>=50)

word++;

if(word==4)

result++;

} }printf("%d",result);

return 0;

}

程式設計題#6:迴圈移動

給定一組整數,要求利用陣列把這組數儲存起來,再利用實現對陣列中的數迴圈移動。假定共有n個整數,則要使前面各數順序向後移m個位置,並使最後m各數變為最前面的m各數。

注意,不要用先輸出後m個數,再輸出前n-m個數的方法實現,也不要用兩個陣列的方式實現。

要求只用乙個陣列的方式實現,一定要保證在輸出結果時,輸出的順序和陣列中數的順序是一致的。

輸入輸入有兩行:第一行包含乙個正整數n和乙個正整數m,第二行包含n個正整數。每兩個正整數中間用乙個空格分開。

輸出輸出有一行:經過迴圈移動後陣列中整數的順序依次輸出,每兩個整數之間用空格分隔

#includeint main()

; printf("輸入n,m:");

scanf("%d%d",&n,&m);

for(int i=0;i

程式設計題#7:中位數

中位數定義:一組資料按從小到大的順序依次排列,處在中間位置的乙個數或最中間兩個資料的平均值(如果這組數的個數為奇數,則中位數為位於中間位置的那個數;如果這組數的個數為偶數,則中位數是位於中間位置的兩個數的平均值).

給出一組無序整數,求出中位數,如果求最中間兩個數的平均數,向下取整即可(不需要使用浮點數)

輸入該程式包含多組測試資料,每一組測試資料的第一行為n,代表該組測試資料報含的資料個數,1 <= n <= 15000.

接著n行為n個資料的輸入,n=0時結束輸入

輸出輸出中位數,每一組測試資料輸出一行

#include < stdio.h >

int main ()

; int n=0;

int change=0;

int result=0;

printf ("input n:");

scanf ( "%d", &n );

for (int i = 0; i < n; i++)

scanf ("%d",&x[i]);

for (i = 0; i < n-1; i++)

}} if (n%2==0)

result =(x[n/2]+x[n/2-1])/2;

else

result =x[n/2-1];

printf("%d\n",result);

return 0;

}

程式設計題#8:校門外的樹

某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置;數軸上的每個整數點,即0,1,2,……,l,都種有一棵樹。

馬路上有一些區域要用來建地鐵,這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起始點和終止點的座標都是整數,區域之間可能有重合的部分。現在要把這些區域中的樹(包括區域端點處的兩棵樹)移走。你的任務是計算將這些樹都移走後,馬路上還有多少棵樹。

輸入輸入的第一行有兩個整數l(1 <= l <= 10000)和 m(1 <= m <= 100),l代表馬路的長度,m代表區域的數目,l和m之間用乙個空格隔開。接下來的m行每行包含兩個不同的整數,用乙個空格隔開,表示乙個區域的起始點和終止點的座標。

輸出輸出包括一行,這一行只包含乙個整數,表示馬路上剩餘的樹的數目。

#includeint main()

for(i=0;i<2*m;i=i+2)

sum=(x[i+1]-x[1]+1)+sum;

result=(l+1)-sum;

printf("%d ",result);

return 0;

}

coursera《計算導論與C語言基礎》第十周

描述 在乙個字串中找出母音字母a,e,i,o,u出現的次數。輸入輸入一行字串 字串中可能有空格,請用cin.getline s,counts 方法把一行字串輸入到字元陣列s中,其中counts是s的最大長度,這道題裡面可以直接寫80。字串長度小於80個字元。輸出輸出一行,依次輸出a,e,i,o,u在...

Coursera 計算導論與C語言基礎 第八周

程式設計題 1 數字求和 給定乙個正整數a,以及另外的5個正整數,問題是 這5個整數中,小於a的整數的和是多少?輸入一行,只包括6個小於100的正整數,其中第乙個正整數就是a。輸出一行,給出乙個正整數,是5個數中小於a的數的和。includeint main a x 0 for i 1 i 6 i ...

計算導論與C語言基礎week7

1.setprecision控制輸出流顯示浮點數的有效數字個數 include include using namespace std int main 手算結果是12345678920 但這段 結果是12345678848 因為浮點數精度只有7位,超過7位就不準確 用浮點數運算時應避免大 小 數字...