4、调用库函数<string.h> :
编写一个程序,从用户输入中读取一行字符串,然后输出字符串的长度和反转后的字符串。
5、结构体和指针处理数据 :
定义一个结构体 Student,包含学生的姓名和分数。输入 5 名学生的信息,然后输出分数最高的
学生姓名和分数。
C++ 代码如下:
4、调用库函数<string.h>:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
// 从用户输入读取一行字符串
string str;
cout << "请输入一行字符串:";
getline(cin, str);
// 输出字符串长度
cout << "字符串长度为:" << str.length() << endl;
// 反转字符串
reverse(str.begin(), str.end());
cout << "反转后的字符串为:" << str << endl;
return 0;
}
5、结构体和指针处理数据:
#include <iostream>
#include <string>
using namespace std;
// 学生结构体
struct Student {
string name; // 学生姓名
double score; // 学生分数
};
int main() {
Student students[5]; // 学生数组
// 输入学生信息
for (int i = 0; i < 5; i++) {
cout << "请输入第" << i+1 << "名学生的姓名和分数:";
cin >> students[i].name >> students[i].score;
}
// 查找分数最高的学生
int max_index = 0;
for (int i = 1; i < 5; i++) {
if (students[i].score > students[max_index].score) {
max_index = i;
}
}
// 输出分数最高的学生信息
cout << "分数最高的学生是:" << students[max_index].name << endl;
cout << "分数是:" << students[max_index].score << endl;
return 0;
}
【以下回答由 GPT 生成】
当然可以!下面是我为您编写的C程序。
首先,我们需要引入 stdio.h
和 string.h
来处理输入输出和字符串操作。然后,我们定义一个包含学生姓名和分数的结构体 Student
。
#include <stdio.h>
#include <string.h>
typedef struct {
char name[50];
float score;
} Student;
接下来,我们定义一个函数 getMaxScoreStudent()
来找到分数最高的学生。该函数接受一个 Student
的数组和数组的长度作为参数,并返回分数最高的学生。
Student getMaxScoreStudent(Student students[], int length) {
Student maxScoreStudent = students[0];
for (int i = 1; i < length; i++) {
if (students[i].score > maxScoreStudent.score) {
maxScoreStudent = students[i];
}
}
return maxScoreStudent;
}
然后,我们在 main()
函数中读取用户输入的字符串,并计算字符串长度。接着,我们使用一个循环来输入5名学生的信息,并调用 getMaxScoreStudent()
函数来获取分数最高的学生。最后,我们输出字符串的长度和反转后的字符串,并输出分数最高的学生姓名和分数。
int main() {
char string[100];
printf("请输入一个字符串:\n");
scanf("%[^\n]s", string); // 读取一行字符串
int length = strlen(string); // 计算字符串的长度
printf("字符串长度为:%d\n", length);
// 反转字符串
char reversedString[100];
for (int i = length - 1; i >= 0; i--) {
reversedString[length - i - 1] = string[i];
}
reversedString[length] = '\0'; // 添加字符串结束符号
printf("反转后的字符串为:%s\n", reversedString);
Student students[5];
printf("请输入5名学生的信息:\n");
for (int i = 0; i < 5; i++) {
printf("请输入第%d名学生的姓名:\n", i+1);
scanf("%s", students[i].name);
printf("请输入第%d名学生的分数:\n", i+1);
scanf("%f", &students[i].score);
}
Student maxScoreStudent = getMaxScoreStudent(students, 5);
printf("分数最高的学生是:%s,分数为:%f\n", maxScoreStudent.name, maxScoreStudent.score);
return 0;
}
以上就是完成该程序的代码。我们首先读取用户输入的字符串,计算字符串长度并输出。然后,反转该字符串并输出反转后的结果。接着,我们输入5名学生的信息,调用函数获取分数最高的学生并输出其姓名和分数。
请注意,以上代码可能无法处理输入错误的情况,例如超出数组范围的输入。为了程序的健壮性,可以添加适当的输入校验。
希望以上代码能满足您的需求。如果您有任何问题,请随时提问。
【相关推荐】