这个代码哪里错了请问

img

img

img

16行改为
printf("%.2f",250+a-300);

逻辑混乱
if (a > 300) if (250 + a - 300 > 400)
这里,前一个条件不需要,后面的条件,a > 450 即可(因为>450天然就大于300了)

printf("%.2f", b=0.8a)
这里,到底是输出b还是让bi=0.8
a,分开写。如果b只用到一次,这个b本身就是多余的

printf(250+a-300);
这里,你要输出什么,如果输出值,应该是printf("%.2f",250+a-300);

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇文章讲的很详细,请看:企业的代码发布解决方案
  • 除此之外, 这篇博客: 单链表完整代码中的 单链表 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct Node{
        int data;
        struct Node *next;
    }Node, *LinkedList;
     
    Node insert(LinkedList head, Node *node, int index) {
        Node *p, ret;
        p = &ret;
        ret.data = 0;
        ret.next = head;
        while (p->next && index) {
            p = p->next;
            --index;
        }
        if (index == 0) {
            node->next = p->next;
            p->next = node;
            ret.data = 1;
        }
        return ret;
    }
    void output(LinkedList head) {
        Node *p = head;
        while (p) {
            printf("%d", p->data);
            if (p->next) {
                printf(" ");
            }
            p = p->next;
        }
        printf("\n");
    }
    
    void clear(LinkedList head) {
        Node *p, *q;
        p = head;
        while (p) {
            q = p->next;
            free(p);
            p = q;
        }
        return ;
    }
    
    int main() {
        LinkedList linkedlist = NULL;
        Node *p, ret;
        int n, num, loc;
        scanf("%d", &n);
        for (int i = 0; i < n; ++i) {
            scanf("%d%d", &loc, &num);
            p = (Node *)malloc(sizeof(Node));
            p->data = num;
            p->next = NULL;
            ret = insert(linkedlist, p, loc);
            linkedlist = ret.next;
            printf("%s\n", ret.data ? "success" : "failed");
        }
        output(linkedlist);
        clear(linkedlist);
        return 0;
    }
    
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct Node{
        int data;
        struct Node *next;
    }Node, *LinkedList;
    
    LinkedList insert(LinkedList head, Node *node, int index) {
        if (head == NULL) {
            if (index != 0) {
                printf("failed\n");
                return head;
            }
            head = node;
            printf("success\n");
            return head;
        }
        if (index == 0) {
            node->next = head;
            head = node;
            printf("success\n");
            return head;
        }
        Node *current_node = head;
        int count = 0;
        while (current_node->next != NULL && count < index - 1) {
            current_node = current_node->next;
            count++;
        }
        if (count == index - 1) {
            node->next = current_node->next;
            current_node->next = node;
            printf("success\n");
            return head;
        }
        printf("failed\n");
        return head;
    }
    
    void output(LinkedList head) {
        if (head == NULL) {
            return;
        }
        Node *current_node = head;
        while (current_node != NULL) {
            printf("%d ", current_node->data);
            current_node = current_node->next;
        }
        printf("\n");
    }
    
    Node delete_node(LinkedList head, int index) {
        Node ret, *p, *q;
        ret.data = 0;
        ret.next = head;
        p = &ret;
        while(p->next && index) {
            p = p->next;
            --index;
        }
        if(p->next) {
            q = p->next;
            p->next = q->next;
            free(q);
            ret.data = 1;
        }
        return ret;
    }
    
    LinkedList reverse(LinkedList head) {
        Node ret;
        ret.next = NULL;
        Node *p, *q;
        p = head;
        while(p) {
            q = p->next;
            p->next = ret.next;
            ret.next = p;
            p = q;
        }
        return ret.next;
    }
    
    void clear(LinkedList head) {
        Node *current_node = head;
        while (current_node != NULL) {
            Node *delete_node = current_node;
            current_node = current_node->next;
            free(delete_node);
        }
    }
    
    int main() {
        LinkedList linkedlist = NULL;
        int n;
        Node ret;
        scanf("%d", &n);
        while(n --) {
            int w;
            scanf("%d", &w);
            if(w == 1) {
                int a, b;
                scanf("%d%d", &a, &b);
                Node *node = (Node *)malloc(sizeof(Node));
                node->data = b;
                node->next = NULL;
                linkedlist = insert(linkedlist, node, a);
            }
            if(w == 2) {
                output(linkedlist);
            }
            if(w == 3) {
                int a;
                scanf("%d", &a);
                ret = delete_node(linkedlist, a);
                linkedlist = ret.next;
                printf("%s\n", ret.data ? "success" : "failed");
            }
            if(w == 4) {
                linkedlist = reverse(linkedlist);
            }    
        }
        clear(linkedlist);
        return 0;
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^