习题3.4
#include<stdio.h>
#include<limits.h>
int main() {
int score[10] = { 0 }, min_score = INT_MAX, max_score = INT_MIN, sum_score = 0;
double avg = 0.0;
printf("请输入十个得分:\n");
for (int i = 0; i < 10; i++)
{
scanf_s("%d", &score[i]);
if (score[i] > min_score) {
min_score = score[i];
}
if (score[i] < max_score) {
max_score = score[i];
}
sum_score += score[i];
}
avg = (sum_score - min_score - max_score) / 8;
printf("去掉最高分和最低分后平均分为: %f", avg);
return 0;
}
习题3.5
#include<stdio.h>
int main() {
int num[20];
int count = 0;
int ch;
printf("请输入数字序列: \n");
while ((ch = fgetc(stdin)) != '\n') {
scanf_s("%d", &num[count++]);
}
for (int i = 1; i < count; i++)
{
printf("%d ", num[i] - num[i - 1]);
}
return 0;
}
3.6
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 1024
int main() {
char input[MAX_SIZE];
char max_char = '\0';
printf("请输入一串字符串: ");
if (fgets(input, sizeof(input), stdin) != NULL) {
for (int i = 0; input[i] != '\0'; i++) {
if (input[i] > max_char) {
max_char = input[i];
}
}
printf("ASCII值最大的字符是: %c\n", max_char);
}
else {
printf("读取输入时出错。\n");
}
return 0;
}
3.7
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#define MAX_MAXSIZE 26
int main() {
char str[26], times_uppercase = 0, times_lowercase = 0;
printf("请输入一串字符串:\n");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = 0;
for (int i = 0; i < sizeof(str); i++)
{
if (isupper(str[i]))
{
times_uppercase++;
}
else if(islower(str[i]))
{
times_lowercase++;
}
}
printf("大写字母出现的次数为:%d, 小写字母出现的次数为:%d", times_uppercase, times_lowercase);
return 0;
}
3.8
#include<stdio.h>
#include<string.h>
#include<stdbool.h>
#define MAX_MAXSIZE 1024
bool isEmptyString(const char* str);
int main() {
char input[MAX_MAXSIZE];
printf("请输入一串字符串: \n");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = 0;
if (isEmptyString(input)) {
printf("你输入的是空串!");
}
else
{
printf("你输入的是:%s", input);
}
return 0;
}
bool isEmptyString(const char* str) {
return str == NULL || *str == '\0';
}
3.9
#include<stdio.h>
#include<stdlib.h>
#define MAX_SIZE 1024
int main() {
FILE* fp;
char buffer[MAX_SIZE];
fp = fopen("score.txt", "r");
if (fp == NULL) {
perror("文件score.txt打开失败!");
return EXIT_FAILURE;
}
while (fgets(buffer, sizeof(buffer), fp) != NULL)
{
fputs(buffer, fp);
}
fclose(fp);
return EXIT_SUCCESS;
}
3.10
#include<stdio.h>
#include<stdlib.h>
int main() {
char ch;
FILE* fp = fopen("test.txt", "w");
if (fp == NULL) {
perror("文件test.txt打开失败!");
return EXIT_FAILURE;
}
while ((ch = fgetc(stdin)) != '\n') {
fputc(ch, fp);
fputc('\n', fp);
}
fclose(fp);
return EXIT_SUCCESS;
}