请问这种问题如何解决

沉迷摸鱼无法自拔 2022-05-07 21:26:36
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
typedef struct node {
	int data;
	struct node*next;
}Node;
int main()
{
	int T, n, value;
	scanf_s("%d", &T);
	while (T--)
	{
		Node	*p, *q, *head = NULL, *t;
		int max = INT_MIN, index = 0, num = 0;
		scanf_s("%d", &n);
		while (n--)
		{
			scanf_s("%d", &value);
			index++;
			if (value > max)
			{
				max = value;
				num = index;
			}
			p = (Node*)malloc(sizeof(Node));
			p->next = NULL;
			if (head == NULL)
			{
				head = p;
			}
			else
			{
				q->next = p;
			}
			q = p;
		}
		printf("max=%d num=%d\n", max, num);
	}
	return 0;
}

程序无法运行,出现   C4703    使用了可能未初始化的本地指针变量“q” 的问题,官方的解决方法无效。

最终目的是在单链表中确定值最大的结点

...全文
138 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

[广而告之]http://t.csdn.cn/2ZOko 试试在线IDE+ChatGPT,有问题直接在IDE里求助ChatGPT

img

Andy1989630 2022-07-06
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
typedef struct node {
    int data;
    struct node* next;
}Node;
int main()
{
    int T, n, value;
    scanf_s("%d", &T);
    while (T--)
    {
        Node* p,  * head = NULL, * t;
        Node* q = NULL;
        int max = INT_MIN, index = 0, num = 0;
        scanf_s("%d", &n);
        while (n--)
        {
            scanf_s("%d", &value);
            index++;
            if (value > max)
            {
                max = value;
                num = index;
            }
            p = (Node*)malloc(sizeof(Node));
            p->next = NULL;
            if (head == NULL)
            {
                head = p;
            }
            else
            {
                q->next = p;
            }
            q = p;
        }
        printf("max=%d num=%d\n", max, num);
    }
    return 0;
}

不知道这个对不对?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧