From 7c82ff70b2d02158e1395f8c54284a70dae43eee Mon Sep 17 00:00:00 2001 From: lensferno Date: Thu, 5 May 2022 08:39:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=91=E7=9C=8B=E7=9C=8B=E6=98=AF=E8=B0=81?= =?UTF-8?q?=E7=9A=84c=E5=AE=9E=E9=AA=8C=E4=B8=89=E9=B8=BD=E5=88=B0?= =?UTF-8?q?=E4=BA=86=E7=8E=B0=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pure-c-test/20220407/3-7.c | 21 +++++++++++++++ pure-c-test/20220407/3-8.c | 21 +++++++++++++++ pure-c-test/20220428/test-4-9.c | 45 +++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) diff --git a/pure-c-test/20220407/3-7.c b/pure-c-test/20220407/3-7.c index e69de29..e1e6c92 100644 --- a/pure-c-test/20220407/3-7.c +++ b/pure-c-test/20220407/3-7.c @@ -0,0 +1,21 @@ +#include +#include + +int main() { + int number = 0; + scanf("%d", &number); + + int length = 0; + while ((number % (int)pow(10, length)) != number) { + length ++; + } + + int digital = 0, maxDigital = 0; + for (int i = 0; i < length; ++i) { + digital = number % 10; + maxDigital = digital > maxDigital ? digital : maxDigital; + number /= 10; + } + + printf("%d", maxDigital); +} \ No newline at end of file diff --git a/pure-c-test/20220407/3-8.c b/pure-c-test/20220407/3-8.c index e69de29..813bfd1 100644 --- a/pure-c-test/20220407/3-8.c +++ b/pure-c-test/20220407/3-8.c @@ -0,0 +1,21 @@ +#include + +int main() { + int n = 0; + scanf("%d", &n); + + double numerator = 2.0, //和分母 + denominator = 1.0; //分子 + + double oldNumerator = 0.0; + + double result = 0.0; + for (int i = 0; i < n; ++i) { + result += numerator / denominator; + oldNumerator = numerator; + numerator += denominator; + denominator = oldNumerator; + } + + printf("%.6f", result); +} \ No newline at end of file diff --git a/pure-c-test/20220428/test-4-9.c b/pure-c-test/20220428/test-4-9.c index e69de29..b717e50 100644 --- a/pure-c-test/20220428/test-4-9.c +++ b/pure-c-test/20220428/test-4-9.c @@ -0,0 +1,45 @@ +#include +#include + +struct Student { + char name[16]; + int score; +}; + +void sort(Student *students, int count); +void copy(Student *target, Student *source); + +int main() { + int studentNumber = 0; + scanf("%d", &studentNumber); + + Student students[studentNumber]; + for (int i = 0; i < studentNumber; ++i) { + scanf("%s %d", students[i].name, &students[i].score); + } + + sort(students, studentNumber); + + for (Student student : students) { + printf("%s %d\n", student.name, student.score); + } +} + +void sort(Student *students, int count) { + Student temp{}; + + for (int i = 0; i < count - 1; ++i) { + for (int j = 0; j < count - 1 - i; ++j) { + if (students[j].score < students[j + 1].score) { + copy(&temp, &students[j + 1]); + copy(&students[j + 1], &students[j]); + copy(&students[j], &temp); + } + } + } +} + +void copy(Student *target, Student *source) { + strcpy(target->name, source->name); + target->score = source->score; +} \ No newline at end of file