PAT基礎編程題目-7-5 表格輸出
題目詳情
解答
C語言版(1)
#include<stdio.h>
int main() {
printf("------------------------------------\n");
printf("Province Area(km2) Pop.(10K)\n");
printf("------------------------------------\n");
printf("Anhui 139600.00 6461.00\n");
printf("Beijing 16410.54 1180.70\n");
printf("Chongqing 82400.00 3144.23\n");
printf("Shanghai 6340.50 1360.26\n");
printf("Zhejiang 101800.00 4894.00\n");
printf("------------------------------------\n");
return 0;
}
這麼寫代碼就沒意思了,雖然能通過,但是咋們換一種寫法
C語言版(2)
#include<stdio.h>
int main() {
printf("------------------------------------\n");
printf("Province Area(km2) Pop.(10K)\n");
printf("------------------------------------\n");
char province[5][10] = { "Anhui", "Beijing", "Chongqing", "Shanghai", "Zhejiang" };
float area[5] = { 139600.00, 16410.54, 82400.00, 6340.50, 101800.00 };
float pop[5] = { 6461.00 ,1180.70 ,3144.23 ,1360.26 ,4894.00 };
for (int i = 0; i < 5; i++)
printf("%-11s %11.2f %9.2f\n", province[i], area[i], pop[i]); // -表示左對齊,11表示寬度,默認是右對齊
printf("------------------------------------\n");
return 0;
}
C++版(1)
#include<iostream>
int main() {
std::cout << "------------------------------------\n";
std::cout << "Province Area(km2) Pop.(10K)\n";
std::cout << "------------------------------------\n";
std::cout << "Anhui 139600.00 6461.00\n";
std::cout << "Beijing 16410.54 1180.70\n";
std::cout << "Chongqing 82400.00 3144.23\n";
std::cout << "Shanghai 6340.50 1360.26\n";
std::cout << "Zhejiang 101800.00 4894.00\n";
std::cout << "------------------------------------\n";
return 0;
}
這麼寫代碼就沒意思了,雖然能通過,但是咋們換一種寫法
C++版(2)
C++中控制對齊是比較麻煩的一件事。
#include<iostream>
#include<iomanip>
using namespace std;
int main() {
cout << "------------------------------------" << endl;
cout << "Province Area(km2) Pop.(10K)" << endl;
cout << "------------------------------------" << endl;
char province[5][10] = { "Anhui", "Beijing", "Chongqing", "Shanghai", "Zhejiang" };
float area[5] = { 139600.00, 16410.54, 82400.00, 6340.50, 101800.00 };
float pop[5] = { 6461.00 ,1180.70 ,3144.23 ,1360.26 ,4894.00 };
for (int i = 0; i < 5; i++) {
cout << setw(12) << setiosflags(ios::left) << province[i];
cout << setw(11) << setiosflags(ios::right) << fixed << setprecision(2) << area[i];
cout << setw(10) << setiosflags(ios::right) << fixed << setprecision(2) << pop[i];
cout << resetiosflags(ios::right);
cout << endl;
}
cout << "------------------------------------" << endl;
return 0;
}
Java版(1)
public class Main{
public static void main(String[] args) {
System.out.println("------------------------------------");
System.out.println("Province Area(km2) Pop.(10K)");
System.out.println("------------------------------------");
System.out.println("Anhui 139600.00 6461.00");
System.out.println("Beijing 16410.54 1180.70");
System.out.println("Chongqing 82400.00 3144.23");
System.out.println("Shanghai 6340.50 1360.26");
System.out.println("Zhejiang 101800.00 4894.00");
System.out.println("------------------------------------");
}
}
Java版(2)
注意,java中支持C語言風格的輸出。
public class Main{
public static void main(String[] args) {
System.out.println("------------------------------------");
System.out.println("Province Area(km2) Pop.(10K)");
System.out.println("------------------------------------");
String [] province = {"Anhui", "Beijing", "Chongqing", "Shanghai", "Zhejiang"};
float [] area = {139600.00f, 16410.54f, 82400.00f, 6340.50f, 101800.00f};
float [] pop = {6461.00f ,1180.70f ,3144.23f ,1360.26f ,4894.00f};
for (int i = 0; i < 5; i++)
System.out.printf("%-11s %11.2f %9.2f\n", province[i], area[i], pop[i]); // 支持c語言風格的輸出
System.out.println("------------------------------------");
}
}
創作不易,喜歡的話加個關注點個贊,謝謝謝謝謝謝!