16程式設計基礎實驗非OJ題目(第三次實驗課)

2021-07-24 22:27:48 字數 3344 閱讀 8469

5.4(非oj實驗、練習)編乙個函式, 求解二元一次方程組

#include #include #define pre 1e-4

#define error -404404

double solve(double,double,double,double,double,double,double*);

int main()

else

return 0;

}double solve(double a1,double b1,double c1,double a2,double b2,double c2,double* py)

else

return ansx;

}

現在再看這個**感覺怪怪的,當時是用了cramer法則去做這個,線代學的也不好,沒有區分無解和無窮多解,函式傳了一堆引數,應該拿個結構體封一下的。

5.6(非oj實驗、練習)分別編寫函式,檢測乙個字元是否空格,乙個字元是否數字,乙個字元是否母音

#include int isspace (char c);

int isnum (char c);

int isaeiou (char c);

int main()

else else else

}}

} return 0;

}int isspace (char c)

int isnum (char c)

int isaeiou (char c)

好吧,其實沒什麼好說的,如果不是分別編寫函式我也不會這樣寫,應該把三個判斷寫在乙個函式裡面好一些吧,主函式這樣看起來好奇怪。

5.10(選做練習)編寫函式,以兩個正整數為引數,如果該兩數是友好的返回true,否則返回false。如果這兩個整數每個的約數和(除了它本身以外)等於對方我們就稱這對數是友好的。例如:1184的約數和有:1+2+4+8+16+32+37+74+148+296+592=1210   1210的約數和有:1+2+5+10+11+22+55+110+121+242+605=1184

#include int addnum (int n);

int main()

else

return 0;

}int addnum (int n)

} return sum;

}

函式是把引數所有的真約數加起來,後來oj又碰到了這個題:

#include #include int primesum (int n);

int main ()

else

} return 0;

}int primesum (int n)

} return sum;

}

明顯還是下面這個用心一點……做了一點點優化。

6.7(非oj實驗、練習)編函式, 找出給定兩維整數組a中所有鞍點。若乙個陣列元素a[i,j] 正好是矩陣a 第 i 行的最小值; 第 j 列的最大值則稱其為 a 的乙個鞍點。

#include typedef struct  node;

int main()

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

if (a[i][j] > a[max[j].x][max[j].y])

} }for (i = 0;i < m;i ++)

} }return 0;

}

一邊讀入一邊處理資料,輸入終止的時候就能找到每行每列的最大值座標或者最小值左邊,似乎是聯機演算法吧?大體思路如此,為了省時間,但是題目是編函式……。

6.14(非oj實驗、練習)編函式,先對任意給定的 m*n 階整數矩陣的每行按遞增順序排序, 然後再按行以每行第乙個元素為關鍵字以遞增順序排序。使

a1112

<… 1n     a21

22<… 2n      … … …     am1

m2< …mn      且     a11

21< …m1

#include #define maxsize 100

int main()

a[i][k+1] = temp;

} else

} if (i>=1) node;

int main()

char* my_strcat(char* s1,char* s2)

for(i = len1; i<=len1+len2; i ++)

return s1;

}

我終於想起來要用函式編寫了……注意一下複製會不會引起溢位,溢位了可不好玩。

6.6(選做練習)編函式, 把整數組中值相同的元素刪除得只剩乙個; 並把剩餘元素全部串到前邊。

#include #include #define maxsize 101

int main()

; printf("請輸入一共要列印的數字個數:\n");

scanf("%d",&num);

printf("請輸入矩陣的階數:\n");

scanf("%d",&m);

if (m*m != num)

int cnt = 1;

int circle = 0;

while (cnt <= num)

for (i = circle + 1 ; i < m - 1 - circle; i ++, cnt ++)

for (i = m - 1 - circle; i > circle; i --, cnt ++)

for (i = m - 1 - circle; i > circle; i --, cnt ++)

circle ++;

} for (i = 0;i < m;i ++) else

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

return 0;

}void insert (char* s, char sp[100][101], int i)

strcpy(sp[j],s);

return ;

}int cmp (char* s1, char* s2)

} if (ret == 2 && len == strlen(s1)) else

} return ret;

}int min (int a, int b)

printf("%d",ans+1);

return 0;

}

可以用陣列去模擬killing的過程,但是我這麼有愛心的乙個人怎麼能這樣做呢!

One程式設計組第三次題目

1.如何將54張撲克以 最快速度排好序。並用程式實現。dfgh四個字母發別代表紅桃,黑桃,方片,梅花四色。大王為ww,小王為ii 例如 紅桃k為 dk,紅桃2為 d2。隨機產生 最後的順序為 da d2 fa f2.ga g2.ha h2.ii ww 如果程式不能實現,寫出你的想法。2.有乙個亂序的...

One程式設計組第三次題目

1.如何將54張撲克以 最快速度排好序。並用程式實現。dfgh四個字母發別代表紅桃,黑桃,方片,梅花四色。大王為ww,小王為ii 例如 紅桃k為 dk,紅桃2為 d2。隨機產生 最後的順序為 da d2 fa f2.ga g2.ha h2.ii ww 如果程式不能實現,寫出你的想法。2.有乙個亂序的...

《OpenGL程式設計基礎》第三章習題

又將近乙個月,我真混蛋啊,好吧,今次還是第三章,雖然已經看到第五章了,但是一直沒有做習題。公司準備用ogre。苦逼的我感覺還是要有點兒底子,不然哪兒看得懂 麼。為了知其然知其所以然。繼續。路漫漫其修遠兮,吾將好好學習,語文不太好,反正就是要表達這麼個意思。看了看第三章的習題。主要是一些glut的應用...