关于c语言的编写程序问题

 在主函数中输入密码,若密码正确,调用一个函数。函数的功能是循环输入n个学生成绩,当成绩大于等于90,输出”very good”,当成绩大于或等于80并且小于90时,输出”good”,当成绩大于或等于60并且小于80时,输出”passed”,当成绩小于60时,输出“failed”。当输入成绩为小于零的数,程序退出。 

 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#define pasw "hello"
int main()
{
	char password[32]={0};
	int len=0;
	int i=0;
	
	printf("请输入密码:\n");
	scanf("%31s", password);

	if(strcmp(password,pasw)==0)
	{
		float cj=0.0;
		bool run = true;
		while(run)
		{
			printf("\n请输入学生成绩:\n");
			scanf("%f", &cj);
			if(cj >=90)
			{
				printf("very good\n");
			}
			else if((cj >=80)&&(cj <90))
			{
				printf("good\n");
			}
			else if((cj >=60)&&(cj <80))
			{
				printf("passed\n");
			}
			else if((cj >=0)&&(cj <60))
			{
				printf("failed\n");
			}
			else if(cj <0)
			{
				run = false;	
				printf("程序退出\n");

			}
		}
		
	}
	else
	{
		printf("密码错误,程序退出\n");
	}
	return 0;

}

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
#include <string>
void fun()
{
	float n;
	for (; ; )
	{
		printf("请输入成绩:");
		scanf("%f",&n);
		if (n < 0)
			return;

		if (n >= 90)
		{
			printf("very good\n");
		}else if(n >= 80 && n < 90)
			printf("good\n");
		else if(n >= 60 && n < 80)
			printf("passed\n");
		else
			printf("failed\n");

	}
}


int main()
{
	std::string s = "abc";  //密码
	char password[16] = {0};
	printf("请输入密码:");
	gets(password);
	if (s.compare(password) == 0)
	{
		fun();
	}
}