openGL三角形渲染fragmentshader

const char* vertexShaderSource =
"#version 330 core \n"
"layout(location = 0) in vc3 aPos \n"
"void main (){ \n"
" gl_Position = vec4(aPos.x,aPos.y,sPos.z,1.0);} \n";

const char* fragmentShaderSource =
"#version 330 core \n"
"out vec4 FragColor; \n"
"void main() { \n"
"FragColor = vec4(1.0f, 0.5f, 0.2f, 0.0f);} \n";
    
    unsigned int VAO;
	glGenVertexArrays(1, &VAO);
	glBindVertexArray(VAO);

	unsigned int VBO;
	glGenBuffers(1, &VBO);
	glBindBuffer(GL_ARRAY_BUFFER, VBO);
	glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices,GL_STATIC_DRAW);

	unsigned int vertexShader;
	vertexShader=glCreateShader(GL_VERTEX_SHADER);
	glShaderSource(vertexShader, 1, &fragmentShaderSource,NULL);
	glCompileShader(vertexShader);

	unsigned int fragmentShader;
	fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
	glShaderSource(fragmentShader, 1, &fragmentShaderSource, NULL);
	glCompileShader(fragmentShader);

	unsigned int shaderProgram;
	shaderProgram = glCreateProgram();
	glAttachShader(shaderProgram, vertexShader);
	glAttachShader(shaderProgram, fragmentShader);
	glLinkProgram(shaderProgram);

	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
	glEnableVertexAttribArray(0);

	while (!glfwWindowShouldClose(window))
	{
		processInput(window);

		glClearColor(0.3f, 0.33f, 0.2f, 1.0f);//状态设置函数
		glClear(GL_COLOR_BUFFER_BIT);//状态使用函数,使用当前状态清空颜色缓存

		glBindVertexArray(VAO);
		glUseProgram(shaderProgram);
		glDrawArrays(GL_TRIANGLES, 0, 3);

		glfwSwapBuffers(window);
		glfwPollEvents();
	}

按教程来的,前两段是着色器的硬编码,为什么片段着色器没起作用,还有,把上面字符串随便删改一点还是能画出三角形,不过一直没有颜色,是哪里出问题了吗