昨天做了一个统计分数的小程序,但运行不了,显示:
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";
}
}
新手求救,大佬们帮帮忙,谢谢!