消息关闭
    暂无新消息!
#include<iostream>
#include<cctype>
 int main()
 {
 using namespace std;
 double num[10];
 int i=0;
 double sum=0;
 double temp;
 while(cin>>temp&&i<10&&!isdigit(temp))
 {
 num[i]=temp;
         sum+=num[i];
     i++;
     }
 double average=0;
 average=sum/i;
 int j,total=0;
 for(j=0;j<i;j++)
 {
 if(num[j]>average)
         total++;
 }
 cout<<average<<' '<<j;
 system("pause");
 return 0;
 }

调试如上程序时,遇到两个问题:
1、如果输入50+,就会停止运行;
2、如果输入大于255的数,就会提示下图所示,请教大神应该怎么解决呢?

3个回答

︿ 2
我用你的代码编译运行,无误。你的代码中是不是有以下断言:
assert((unsigned)(c+1) <= 256);
这是我参考的isdigit函数接口:http://www.cplusplus.com/reference/cctype/isdigit/?kw=isdigit
所以大于255的数会被转换为int整数,应该不需要<=256这样的断言。
︿ 0
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止