困扰了我......

 昨天做了一个统计分数的小程序,但运行不了,显示:

F:\分数.cpp    In function 'int main()':
107    12      F:\分数.cpp  [Error] incompatible types in assignment of 'char' to 'wchar_t [21]'
#include <bits/stdc++.h>
using namespace std;
unsigned short n,m;
float a[65533];
wchar_t b[65533][21];
int main () {
	cout<<"欢迎使用本分数处理器!\n";
	cout<<"使用须知:\n";
	cout<<"1.可统计人数上限为65532人;\n";
	cout<<"2.可统计分数上限为65532分;\n";
	cout<<"3.可统计人名字符数上限为20个字符;\n";
	cout<<"4.分数不为负;\n";
	cout<<"--------------------------------------------\n";
	cout<<"请输入总人数:";
	cin>>n;
	cout<<"请输入满分:";
	cin>>m;
	if(m<0) {
		cout<<"分数不可为负,即将停止运行。";
		return 0;
	}
	for(int i=1; i<=n; i++) {
		cout<<"学号:"<<i<<"\n请输入姓名:" ;
		//???scanf("%ws",b[i]);???怎么输入
		cout<<"请输入分数:";
		cin>>a[i];
		if(a[i]<0) {
			cout<<"分数不可为负,即将停止运行。";
			return 0;
		}
		cout<<"\n\n";
	}
	while(1) {
		char p;
		cout<<"输入1计算平均分;\n";
		cout<<"输入2计算排名;\n";
		cout<<"输入3增加一个学生;\n";
		cout<<"输入4减少一个学生;\n";
		cout<<"输入5给某一个学生追加或追减分数;\n";
		cout<<"输入其他字符结束运行。\n";
		cout<<"请输入操作字符:";
		cin>>p;
		switch(p) {
			case '1': {
				float sum=0;
				for(int i=1; i<=n; i++) {
					sum+=a[i];
				}
				cout<<sum/n;
				break;
			}
			case'2': {
				unsigned short la[65533]= {};
				//wchar_t lb[65533][21]= {};
				for(int i=1; i<=n; i++) {
					la[i]=a[i];
						for(int j=1; j<=n; j++) {
							lb[i][j]=b[i][j];
						}
				}
				for(int i=1; i<=n; i++) {
					for(int j=1; j<=n-i; j++) {
						if(la[j]<la[i]) {
							swap(la[i],la[j]);
										for(int k=1; k<=n; k++) {
											swap(lb[i][k],lb[j][k]);
										}
						}
					}
				}
				for(int i=1; i<=n; i++) {
					cout<<"第"<<i<<"名:";
					//	for(int j=1; j<=n; j++) {
					//		cout<<lb[i][j];
					//	}
					cout<<" 分数:"<<la[i]<<";\n";
				}
				break;
			}
			case'3': {
				int np=n+1;
				cout<<"请输入添加的分数:";
				cin>>a[np];
				if(n==65532) {
					cout<<"人数已越界,即将停止运行。";
					return 0;
				}
				//???scanf("%ws",b[i]);???怎么输入
				n=np;
				break;
			}
			case '4': {
				int np;
				cout<<"请输入删除的人数:" 
				cin>>np;
				if(n==0) {
					cout<<"人数不可为负,即将停止运行。";
					return 0;
				} else {
					a[np]=0;
						b[1][n]='N';
						b[2][n]='U';
						b[3][n]='L';
						b[4][n]='L';
						for(int i=5; i<=n; i++) {
							b[i]='\0';
						}
					n--;
				}
				break;
			}
			case '5': {
				short outans;
				cout<<"请输入学号:";
				cin>>outans;
				short cans;
				cout<<"请输入加或减的分数(减带负号,加可带可不带正号):";
				cin>>cans;
				a[outans]+=cans;
				if(a[outans]<0) {
					cout<<"分数不可为负,即将停止运行。";
				} else if(a[outans]>m) {
					cout<<"分数不可大于满分,即将停止运行。";
					return 0;
				}
				break;
			}
			default: {
				cout<<"已结束运行。";
				return 0;
			}

		}
		cout<<"\n\n";
	}
}
新手求救,大佬们帮帮忙,谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值