ZBLOG

void Exp(HLink H) { HLinkNode* current = H->next; HLinkNode* prev = H; int isMerged = 0; // 标记是否已经合并了系数 while (current != NULL) { if (current->next != NULL && current->exponent == current->next->exponent) { // ...

你可以修改代码中的输出部分,将第一项与其他项分开处理。以下是修改后的代码:

  1. void Exp(HLink H) {
  2. HLinkNode* current = H->next;
  3. HLinkNode* prev = H;
  4. int isMerged = 0; // 标记是否已经合并了系数
  5. while (current != NULL) {
  6. if (current->next != NULL && current->exponent == current->next->exponent) {
  7. // 如果下一个节点的指数与当前节点相同,则合并系数
  8. current->coefficient += current->next->coefficient;
  9. HLinkNode* temp = current->next;
  10. current->next = current->next->next;
  11. free(temp); // 释放合并的节点
  12. isMerged = 1;
  13. } else {
  14. if (isMerged) {
  15. // 如果已经合并了系数,则输出合并后的系数
  16. if (current->coefficient != 0) {
  17. printf("%+f", current->coefficient);
  18. if (current->exponent != 0) {
  19. printf("x^%d ", current->exponent);
  20. }
  21. }
  22. isMerged = 0;
  23. } else {
  24. // 否则按照原始系数输出
  25. if (prev == H || prev == NULL) { // 处理第一项
  26. if (current->coefficient != 0) {
  27. if (current->coefficient != 1) {
  28. printf("%fx^%d ", current->coefficient, current->exponent);
  29. } else {
  30. if (current->exponent == 0) {
  31. printf("%f ", current->coefficient);
  32. } else if (current->exponent == 1) {
  33. printf("x ");
  34. } else {
  35. printf("x^%d ", current->exponent);
  36. }
  37. }
  38. }
  39. } else {
  40. if (current->coefficient != 0) {
  41. if (current->coefficient != 1) {
  42. printf("%+fx^%d ", current->coefficient, current->exponent);
  43. } else {
  44. if (current->exponent == 0) {
  45. printf("%+f ", current->coefficient);
  46. } else if (current->exponent == 1) {
  47. printf("+x ");
  48. } else {
  49. printf("+x^%d ", current->exponent);
  50. }
  51. }
  52. }
  53. }
  54. }
  55. prev = current;
  56. current = current->next; // 移动到下一个节点
  57. }
  58. }
  59. }

现在,输出函数将能够正确合并指数相同的项,并正确输出第一项。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=9659

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?