关于逻辑的问题(退出状态-1) [英] Question about logic (exit status -1)

查看:98
本文介绍了关于逻辑的问题(退出状态-1)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好!



我不明白为什么它说退出状态-1?



任何人都可以提供帮助。非常感谢你!



我的尝试:



< pre lang =c ++> #include < < span class =code-leadattribute> iostream >
#include < vector >
#include < iomanip >
使用 命名空间标准;
int main(){
vector< string> name { Johnny Wiliam Joe Maria Luis};
int size_test = 4 ;
double 得分[ 5 ] [size_test];
for int i = 0 ; i< name.size(); i ++){
cout<< 学生<< i + 1 << << name [i]<< << \ n;
for int j = 0 ; j< size_test; j ++){
cout<< 测试分数#<< j + 1 << ;
cin>>得分[i] [j];
}
cout<< \ n;
}
vector< double> total;
for int i = 0 ; i< name.size(); i ++){
double temp_total = 0 ;
for int j = 0 ; j< size_test; j ++){
temp_total + = score [i] [j];
}
total.push_back(temp_total);
}

vector< double>小计;
for int i = 0 ; i< name.size(); i ++){
double 最低=得分[i] [ 0 ];
for int j = 1 ; j< size_test; i ++){
if (得分[i] [j] <最低){
最低=得分[i] [j];
}
}
double temp_subtotal = total [i] - 最低;
subtotal.push_back(temp_subtotal);
}

vector< double> average;
for int i = 0 ; i< name.size(); i ++){
double temp_average = static_cast< double>(subtotal [i] * 1 0 )/
double ) ((size_test - 1 )* 1 0 );
average.push_back(temp_average);
}
vector< char>等级;
for int i = 0 ; i< name.size(); i ++){
char temp_grade = ' ';
如果(average [i]> = 90 ){
temp_grade = ' A';
}
其他 如果(average [i]> = 80 && average [i]< 90 ){
temp_grade = ' B';
}
其他 如果(average [i]> = 70 && average [i]< 80 ){
temp_grade = ' C';
}
其他 如果(average [i]> = 60 && average [i]< 70 ){
temp_grade = ' D';
}
其他 如果(average [i]< 60 ){
temp_grade = ' F' ;
}
grade.push_back(temp_grade);
}
cout<< \ n;
cout<< setprecision( 2 )<<固定<< showpoint;
for int i = 0 ; i< name.size(); i ++){
cout<< name [i]<< << \ n;
cout<< \t<< 平均得分为<< average [i]<< \ n;
cout<< \t<< 等级为<<等级[i]<< \ n;
}
}

解决方案

退出状态是 main返回的值( )或传递给退出的值 - C ++参考 [ ^ ]函数。



因为你的 main()函数没有返回一个值(编译器警告应该注明),它可以是任何随机数。



它应如下所示:

  int  main()
{
// 此处代码

// 成功时返回零通常
返回 0 ;
}



但是,在关键程序终止时,退出状态也可以为-1。


Hi everyone!

I dont understand why it said exit status -1?

Anyone can help. Thank you so much !

What I have tried:

#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
int main() {
  vector<string>name {"Johnny", "Wiliam", "Joe", "Maria", "Luis"};
  int size_test = 4;
  double score[5][size_test];
  for (int i = 0; i < name.size(); i++) {
    cout << "Student " << i + 1 << ": " << name[i] << ": " << "\n";
    for (int j = 0; j < size_test; j++) {
      cout <<  "Score for test #" << j + 1 << ":";
      cin >> score[i][j];
    }
    cout << "\n";
  }
  vector<double>total;
  for (int i = 0; i < name.size(); i++) {
    double temp_total = 0;
    for (int j = 0; j < size_test; j++) {
      temp_total += score[i][j];
    }
    total.push_back(temp_total);
  }
  
  vector<double>subtotal;
  for (int i = 0; i < name.size(); i++) {
    double lowest = score[i][0];
    for (int j = 1; j < size_test; i++) {
      if (score[i][j] < lowest) {
        lowest = score[i][j];
      }
    }
    double temp_subtotal = total[i] - lowest;
    subtotal.push_back(temp_subtotal);
  }
  
  vector<double>average;
  for (int i = 0; i < name.size(); i++) {
    double temp_average = static_cast<double>(subtotal[i] * 1.0) / 
                                  (double)((size_test - 1) * 1.0);
    average.push_back(temp_average);
  }
  vector<char>grade;
  for (int i = 0; i < name.size(); i++) {
    char temp_grade = ' ';
    if (average[i] >= 90) {
      temp_grade = 'A';
    }
    else if (average[i] >= 80 && average[i] < 90) {
      temp_grade = 'B';
    }
    else if (average[i] >= 70 && average[i] < 80) {
      temp_grade = 'C';
    }
    else if (average[i] >= 60 && average[i] < 70) {
      temp_grade = 'D';
    }
    else if (average[i] < 60) {
      temp_grade = 'F';
    }
    grade.push_back(temp_grade);
  }
  cout << "\n";
  cout << setprecision(2) << fixed << showpoint;
  for (int i = 0; i < name.size(); i++) {
    cout << name[i] << ":" << "\n";
    cout << "\t" << "The average score is " << average[i] << "\n";
    cout << "\t" << "The grade is " << grade[i] << "\n";
  }
}

解决方案

The exit status is the value returned by main() or the value passed to the exit - C++ Reference[^] function when that is called.

Because your main() function does not return a value (which should be noted by a compiler warning), it can be any random number.

It should look like this:

int main()
{
    // Code here
    
    // It is common to return zero upon success
    return 0;
}


However, an exit status of -1 can be also present upon critical program termination.


这篇关于关于逻辑的问题(退出状态-1)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆