发布时间:2024-01-12 16:07来源:www.sf1369.com作者:宇宇
你说的溢出是不是指下面这种情况:
两个符号数是16位的,如果相减后的差值超过16位数据表示的范围了就表示溢出了,以signed short类型数据举例,其所表示的范围是-32768~32767,如果两数差值超过这个范围了就表示溢出。下面是程序:
#include <iostream.h>
void main()
{
short a,b;
int c;
cout<<请输入被减数:;
cin>>a;
cout<<请输入减数:;
cin>>b;
c = a - b;
if((c > 32767) || (c < -32768))
cout<<OverFlow<<endl;
else
cout<<a<< - <<b<< = <<(a-b)<<endl;
}程序中,a表示被减数,b表示减数,c是临时变量,用于判断差值是否溢出,注意,c的类型和a、b不能相同,而是要比a、b表示的范围要大,否则就没法判断是否溢出了。
下面是执行结果:
延伸:
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
public class Test {
public static void main(String[] args) {
int[] arr=new int[]{2,4,6,8};
int[] newArr=halfArray(arr);
for (int i = 0; i < newArr.length; i++) {
System.out.println(newArr[i]);
}
}
public static int[] halfArray(int[] arr){
int[] returnArr=new int[arr.length];
for (int i = 0; i < arr.length; i++) {
returnArr[i]=arr[i]/2;
}
return returnArr;
}
}
#include stdafx.h #include<iostream> #include<string> using namespace std; const int n=6; struct student //定义结构体变量 { string name; int num; double score[3]; double average; }student1[n]; int main() { int i,j; for(i=0;i<n;i++) { cout<<请输入第<<i+1<<个学生的信息:; cin>>student1[i].num >>student1[i].name >>student1[i].score[0]>>student1[i].score[1]>>student1[i].score[2]; } double sum=0; //各学生的平均成绩 for(i=0;i<n;i++) { for(j=0;j<3;j++) { sum=sum+student1[i].score[j]; } student1[i].average=sum/3; sum=0; } //打印出各学生的信息 cout<<输出各学生信息:<<endl; for(i=0;i<n;i++) { cout<<student1[i].num<< <<student1[i].name<< <<student1[i].score[0]<< <<student1[i].score[1]<< <<student1[i].score[2]<< <<student1[i].average <<endl; } //找出成绩最高的那个学生并输出其信息 double max=student1[0].average; int row=0; for(i=0;i<n;i++) { if(max<student1[i].average) { max=student1[i].average; } row=i; } cout<<最高分的学生的数据:<<endl; cout<<student1[row].num<< <<student1[row].name<< <<student1[row].score[0]<< <<student1[row].score[1]<< <<student1[row].score[2]<< <<student1[row].average <<endl; //各科平均成绩 double average1[3];//定义一个装3门课的平均成绩的数组 sum=0; for(j=0;j<3;j++) { for(i=0;i<n;i++) { sum=sum+student1[i].score[j]; } average1[j]=sum/n; sum=0; } cout<<endl; for(i=0;i<3;i++)//输出各门课的平均成绩 { cout<<第<<i+1<<门课的平均成绩:<<endl; cout<<average1[i] <<endl; } return 0; }