C (我的代码卡在第一个功能中)
c++ (My code is stuck in the first function)
#include<iostream>
using namespace std;
struct student_type{
char name[50];
int score;
float grade;
}studs[1];
void getData(student_type studs[]){
int label=1;
for(student_type *p=studs; p<=&studs[1]; ++p){
cout<<"Student " << label++;
cout<<"nName: ";
cin.get(p->name,50);
cout<<"Test Score: ";
cin >> p->score;
cin.get();
}
}
void determineGrade(student_type studs[]){
for(student_type *p; p<=&studs[1]; ++p){
if(p->score<=69&&p->score>=0){
p->grade=5.00;
} else if(p->score<=73&&p->score>=70){
p->grade=3.00;
} else if(p->score<=77&&p->score>=74){
p->grade=2.75;
} else if(p->score<=80&&p->score>=78){
p->grade=2.50;
} else if(p->score<=83&&p->score>=81){
p->grade=2.25;
} else if(p->score<=87&&p->score>=84){
p->grade=2.00;
} else if(p->score<=90&&p->score>=88){
p->grade=1.75;
} else if(p->score<=93&&p->score>=91){
p->grade=1.50;
} else if(p->score<=97&&p->score>=94){
p->grade=1.25;
} else {
p->grade=1.00;
}
}
}
void printData(student_type studs[]){
int label=1;
for(student_type *p=studs; p<=&studs[1]; ++p){
cout<<"Student " << label++;
cout<< "n Name: "<<p->name;
cout<< "n Test Score: "<<p->score;
cout<< "n Grade: "<<p->grade << endl << endl;
}
}
int returnGrade(student_type studs[]){
int box=0;
box=studs[0].score;
for(student_type *p=studs; p<=&studs[1]; ++p){
if(p->score>box){
box=0;
box=p->score;
}
}return box;
}
void highestScorers(student_type studs[], int box){
cout<< "nnHIGHEST SCORERS:" << endl;
for(student_type *p; p<=&studs[1]; ++p){
if(box==p->score){
cout<< p->name << endl;
}
}
}
main(){
getData(studs);
determineGrade(studs);
printData(studs);
int box=returnGrade(studs);
highestScorers(studs, box);
}
我不知道为什么我的代码陷入了GetData部分,我也在另一台PC中做到了,但是在GetData的第一个循环之后,编译器显示"不起作用。几个月前,我已经做到了,它起作用了这是我刚从结构和指针算术开始的时候,我检查了我的旧代码,我的旧代码和新代码(我发布的代码)完全相同,但是当我的旧代码时,此代码在我的旧时遇到问题代码没有。
由于getData函数存在一些问题,所以这是我的旧代码。您会在这里看到它相似,但我的新代码不起作用。
void getData(student_type studs[]){
int label=1;
for(student_type *p=studs; p<=&studs[1]; ++p) {
cout<< "Student " << label ;
cout<< "nName: ";
cin.get(p->name, 50);
do {
cout<< "Score: ";
cin >> p->score;
} while (p->score>100 || p->score<0);
cout<< endl;
++label;
cin.get();
}
}
在以下行
for(student_type *p; p<=&studs[1]; ++p){
您应该初始化变量p
不初始化。您应该将其设置为已知值。我想您想如下初始化它。另外,您的停止条件走得太远:使用<
代替<=
。
for(student_type *p=studs; p<&studs[1]; ++p){
相关文章:
- 获取向量C++中第一个值和最后一个值的和
- 有没有一种"cleaner"的方法可以在指向基的指针向量中找到派生类的第一个实例?
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 如何在创建自定义迭代器时获得 std::p air 的第一个和第二个?
- 如何实现 Front() 方法以返回模板化双向链表C++的第一个元素?
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- "main"函数堆栈中的对象在第一个任务运行时被覆盖 (FreeRTOS)
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- C++部分概念 id:显式模板规范顺序/第一个参数的特殊状态的原因是什么?
- 这个RLE解码功能只解码第一个字符,我做错了什么?
- 为什么我要尝试在一个if语句中调用两个fucntions,但是在第一个完成后它忽略了另一个功能?(C )
- C (我的代码卡在第一个功能中)
- 元功能获取模板列表的第一个模板
- 模板的C 功能将第一个参数设置为第二个参数为默认参数
- 用于存储由第一个功能创建的指针的设计模式将在以后使用
- 指向功能和std ::功能:第一个编译而不是第二个指针
- 第一个交换功能有什么问题?