1、有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。
解题思路:
设一个结构体数组,数组中包含3个元素
每个元素中的信息应包括候选人的姓名(字符型)和得票数(整型)
输入被选人的姓名,然后与数组元素中的“姓名”成员比较,如果相同,就给这个元素中的“得票数”成员的值加1
输出所有元素的信息
#include <iostream>
#include <cstring>
using namespace std;
struct Person {
char name[20];
int count;
} leader[3] = {"Li", 0, "Zhang", 0, "Sun", 0};
int main() {
char name[20];
cout << "请输入投票姓名:" << endl;
for(int i = 0; i < 5; i++) {
cin >> name;
for(int j = 0; j < 3; j++) {
if(strcmp(name, leader[j].name) == 0) { //比较
leader[j].count++;
}
}
}
cout << "投票结果:" << endl;
for(int i = 0; i < 3; i++) {
cout << leader[i].name << ":" << leader[i].count << endl;
}
}
2、有一个学生情况如表所示。编写程序,对该学生情况表按成绩(grade)从低到高进行排序。(要求:用多函数分别实现数据的输入,输出,排序,在主函数中调用这些函数完成操作)
#include <iostream>
using namespace std;
struct Person {
int num;
char name[20];
char sex;
int age;
double grade;
} stu[3];
void Input(Person stu[], int n) {
for(int i = 0; i < n; i++) {
cin >> stu[i].num >> stu[i].name >> stu[i].sex >> stu[i].age >> stu[i].grade;
}
}
void Compare(Person stu[], int n) {
Person t;
for(int i = 0; i < n - 1; i++) {
for(int j = i + 1; j < n; j++) {
if(stu[i].grade > stu[j].grade) {
t = stu[j];
stu[j] = stu[i];
stu[i] = t;
}
}
}
}
void Output(Person stu[], int n) {
cout << "学号(num)\t" << "姓名(name)\t" << "性别(sex)\t" << "年龄(age)\t" << "成绩(grade)" << endl;
for(int i = 0; i < n; i++) {
cout << stu[i].num << "\t" << stu[i].name << "\t" << stu[i].sex << "\t" << stu[i].age << "\t" << stu[i].grade << endl;
}
}
int main() {
int n;
cout << "请输入学生个数" << endl;
cin >> n;
cout << "请输入学生学号(num) 姓名(name) 性别(sex) 年龄(age) 成绩(grade)" << endl;
Input(stu, n);
Compare(stu,n);
cout << "排序后输出结果:" << endl;
Output(stu, n);
}
3、定义三角形类,完成:为三边置值、取三边的值并输出、求三角形周长、求三角形面积、输出三角形周长和面积。
#include <iostream>
#include <cmath>
using namespace std;
class Triangle {
double a, b, c;
public:
void Set(double x, double y, double z) {
a = x; //为三边置值
b = y;
c = z;
}
void Get() {
cout << "三边的值:" << a << " " << b << " " << c << endl; //取三边的值并输出
}
double l() {
return a + b + c; //求三角形周长
}
double s() {
return (sqrt((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a)) / 4); //求三角形面积
}
};
int main() {
Triangle A;
double x, y, z;
cout << "请输入三边的值(x,y,z)" << endl;
cin >> x >> y >> z;
A.Set(x, y, z);
A.Get();
cout << "三角形周长:" << A.l() << endl;
cout << "三角形面积:" << A.s() << endl;
}