C++经典习题--初学者必学的实验题
wrong=wrong+1; cout<<\ } } cout<<\总分为:\ cout<<\错题数:\ return 0; }
(二)方法:C 语言: #include
int AddTest(int a,int b) {
int answer;
printf(\ scanf(\ if(answer==a+b) {
printf(\ return 1; } else {
printf(\ return 0; } }
int main() {
int i,j,k,m,sum=0,wsum=10; for(k=0;k<10;k++){ i = rand()+1; j = rand()+1;
printf(\ m = AddTest(i,j); sum+=m*10; wsum-=m; }
printf(\ return 0; }
16 Making by q649568163
C++经典习题--初学者必学的实验题
18:打印5乘5的魔方距阵 1.检验并打印魔方矩阵
在下面的5×5阶魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。魔术矩阵是由一个n×n(n为奇数)的整数矩阵构成,矩阵中的整数值是从1~n^2[n的平方]。每一行,每一列和两个对角线上数值之和是一样的。这个n为5的魔术矩阵,他的每一行,每一列,两个对角线的和均为65
算法设计:
先在矩阵第一行中间的位置上放1,然后把数字按照升序沿着左上角放置到矩阵中。如果越界了,就假设周围还有一个矩阵,将数字放到那个位置上;如果那个位置已经被占据了,就跳过该位置放到下面的位置,然后重新按照原来的方法放。如图:在5×5的魔术矩阵中,放完1以后,就把2放到1的左上角,但是此时已经越界了。假设,在原来的矩阵上面还有一个矩阵,则数字2所放的位置应该是在最后一行的第二个位置,接下去就要把数字3放到2的左上角,依次放下去,当放到6的时候,由于1已经将下一个位置占了,所以就放到5下面的位置。依照这样的规律直到把数字都放完。
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3
11 18 25 2 9
最佳答案 :有错还要修改。 #include
using namespace std;
const int MAX = 5; int Fun(int a[][MAX]);
int main() {
int a[MAX][MAX] = {0}; for (int i=0; i
if (Fun(a) == 1)
cout << \ else
cout << \
17
Making by q649568163
C++经典习题--初学者必学的实验题
for (int i=0; i for (int j=0; j system(\ return 0; } int Fun(int a[][MAX]) { int s1, s2, sum; sum = 0; for (int i=0; i sum /= MAX; for (int i=0; i s1 = s2 = 0; for (int j=0; j s1 += a[i][j]; s2 += a[j][i]; } if (s1 != sum || s2 != sum) { return 0; } } s1 = s2 = 0; for (int i=0; i s1 += a[i][i]; s2 += a[i][MAX-i-1]; } if (s1 != sum || s2 != sum) return 0; return 1; 18 Making by q649568163 C++经典习题--初学者必学的实验题 } 19:随机产生加减乘除的运算符 (一):C++中怎么样才能实现随机产生一个加减乘除的运算符 #include int nINT; char c=0; while (c!='0')//0退出循环 { srand((unsigned)time(NULL)); nINT = rand()%4; //产生随机数范围是0-3(包括3) switch(nINT) { case 0://对应加法 cout< case 1://对应减法 cout< case 2://对应乘法 cout< case 3://对应除法 cout< cin>>c; } return 0; } 20.学生成绩排名 2.成绩排名次 19 Making by q649568163 C++经典习题--初学者必学的实验题 某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。考试后要求: (1)计算每个学生的总分和平均分; (2)按总分成绩由高到低排出成绩的名次; (3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分; (4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数 #include int inputScore(long num[],float score[][3])//输入学号成绩 { int count; cout<<\请输入学生人数:\ cin>>count; for(int i=0;i float GetAver(float score[][3],float aver[],float sum[])//每个人的平均分总分 { for(int i=0;i<30;i++) { sum[i]=0; for(int j=0;j<3;j++) sum[i]=sum[i]+score[i][j]; aver[i]=sum[i]/3.0; } return 0; } int change(long num[],float score[][3],float aver[],float sum[],int count)//打印排名 { int i,j,k; cout<<\成绩排名:\ for(i=0;i 20 Making by q649568163