分别使用java和C语言写下列任务:1 .实现一个函数,使用粗糙数组输出给定n的延回三角。 2实现一个Triangle类。 声明一个包含5个三角形的数组并初始化它 使用冒泡排序分别按面积和周长对三角形数组进行排序。 可选:通过读取文件初始化数组。(分别使用java和C语言完成)
时间: 2024-03-06 18:52:02 浏览: 16
好的,我来给您提供一些Java和C语言的代码实现:
Java代码实现:
1. 实现一个函数,使用粗略数组输出给定n的杨辉三角:
```
public static void printPascalTriangle(int n) {
int[][] triangle = new int[n][n];
for (int i = 0; i < n; i++) {
triangle[i][0] = 1;
for (int j = 1; j <= i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(triangle[i][j] + " ");
}
System.out.println();
}
}
```
2. 实现一个Triangle类。声明一个包含5个三角形的数组并初始化它。使用冒泡排序分别按面积和周长对三角形数组进行排序。可选:通过读取文件初始化数组。
Triangle类的实现:
```
public class Triangle {
private double side1;
private double side2;
private double side3;
public Triangle(double side1, double side2, double side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double getArea() {
double s = (side1 + side2 + side3) / 2;
return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
public double getPerimeter() {
return side1 + side2 + side3;
}
}
```
排序的实现:
```
public static void sortByArea(Triangle[] triangles) {
int n = triangles.length;
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (triangles[j].getArea() > triangles[j+1].getArea()) {
Triangle temp = triangles[j];
triangles[j] = triangles[j+1];
triangles[j+1] = temp;
}
}
}
}
public static void sortByPerimeter(Triangle[] triangles) {
int n = triangles.length;
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (triangles[j].getPerimeter() > triangles[j+1].getPerimeter()) {
Triangle temp = triangles[j];
triangles[j] = triangles[j+1];
triangles[j+1] = temp;
}
}
}
}
```
C语言代码实现:
1. 实现一个函数,使用粗略数组输出给定n的杨辉三角:
```
void printPascalTriangle(int n) {
int triangle[n][n];
for (int i = 0; i < n; i++) {
triangle[i][0] = 1;
for (int j = 1; j <= i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
}
```
2. 实现一个Triangle类。声明一个包含5个三角形的数组并初始化它。使用冒泡排序分别按面积和周长对三角形数组进行排序。可选:通过读取文件初始化数组。
Triangle类的实现:
```
typedef struct {
double side1;
double side2;
double side3;
} Triangle;
Triangle newTriangle(double s1, double s2, double s3) {
Triangle t;
t.side1 = s1;
t.side2 = s2;
t.side3 = s3;
return t;
}
double getArea(Triangle t) {
double s = (t.side1 + t.side2 + t.side3) / 2;
return sqrt(s * (s - t.side1) * (s - t.side2) * (s - t.side3));
}
double getPerimeter(Triangle t) {
return t.side1 + t.side2 + t.side3;
}
```
排序的实现:
```
void sortByArea(Triangle triangles[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (getArea(triangles[j]) > getArea(triangles[j+1])) {
Triangle temp = triangles[j];
triangles[j] = triangles[j+1];
triangles[j+1] = temp;
}
}
}
}
void sortByPerimeter(Triangle triangles[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (getPerimeter(triangles[j]) > getPerimeter(triangles[j+1])) {
Triangle temp = triangles[j];
triangles[j] = triangles[j+1];
triangles[j+1] = temp;
}
}
}
}
```