1.题目要求求一元二次方程的根,可以使用一元二次方程的求根公式来解决。如果根不存在,则输出Error。#include <stdio.h>#include <math.h>int main() { double a, b, c; double x1, x2; printf("请输入一元二次方程的三个系数(a, b, c):"); scanf("%lf %lf %lf", &a, &b, &c); double discriminant = b * b - 4 * a * c; if (a == 0) { x1 = -c / b; printf("方程的根为:%f\n", x1); } else if (discriminant > 0) { x1 = (-b + sqrt(discriminant)) / (2 * a); x2 = (-b - sqrt(discriminant)) / (2 * a); printf("方程的根为:%f, %f\n", x1, x2); } else if (discriminant == 0) { x1 = -b / (2 * a); printf("方程的根为:%f\n", x1); } else { printf("Error: 方程无根\n"); } return 0;}
2.题目要求将整数数组改为逆序。可以定义两个指针,一个指向数组的起始位置,另一个指向数组的末尾位置,然后将两个指针所指的元素交换位置,直到两个指针相遇。#include <stdio.h>void reverseArray(int arr[], int length) { int *start = arr; int *end = arr + length - 1; while (start < end) { int temp = *start; *start = *end; *end = temp; start++; end--; }}int main() { int arr[] = {1, 2, 3, 4, 5}; int length = sizeof(arr) / sizeof(arr[0]); // 输出原数组 printf("原数组:"); for (int i = 0; i < length; i++) { printf("%d ", arr[i]); } printf("\n"); reverseArray(arr, length); // 输出逆序后的数组 printf("逆序后的数组:"); for (int i = 0; i < length; i++) { printf("%d ", arr[i]); } printf("\n"); return 0;}
3.题目要求统计键盘输入的一系列整数中0-9每个数字出现的次数。可以使用一个大小为10的数组来保存各个数字出现的次数,然后根据用户输入的整数进行相应的计数。#include <stdio.h>int main() { int count[10] = {0}; // 初始化计数数组,全部置为0 int num; printf("请输入若干个整数(0-9之间),以-1结束:\n"); do { scanf("%d", &num); if (num >= 0 && num <= 9) { count[num]++; } } while (num != -1); printf("各个数字出现的次数如下:\n"); for (int i = 0; i < 10; i++) { printf("%d: %d次\n", i, count[i]); } return 0;}
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |