这个尝试编程的题目,求给点建议

1.编程求出某学生期末三门课程的总分及平均分。结果保留小数点后一位。
2.编程从键盘输入两个整数分别给变量a和变量b,分别写出不借助于其他变量和借助于其他变量的条件下,将变量a和b的值实现交换。

第一题很简单:
定义一个int型的变量 total, float型的变量average

输入成绩科目1:1
科目2:3
科目3:2
total = 科目1+ 科目2+科目3;
average = total / 3;
print(总成绩:%d,平均分:%0.1f, total, average);

第二题:
题目给出不借用变量:
方式1 算术:
a=a+b;
b=a-b;
a=a-b;
方式2逻辑:
a = a | b;
b = b | a ;
a = a | b ;

1.平均分和总分好算吧,total = scoreA + scoreB + scoreC; average = total / 3;输出的时候,如果是C语言的话就是printf("%.1f",total);//输出一位小数
2.①借助变量,那么用int temp; temp = a; a = b; b = temp;的方式
②不借助变量,那么只能通过异或“^”的方式来改变了,比如:int a = 1; int b = 2; a = a ^ b; b = b^ a; a = a ^ b;来实现

第一题,就是简单的加法除法内容,控制位数的方法要看lz用哪种语言
第二题主要部分如下:

借助参数

 tmp = a;
 a = b;
 b = tmp;

不借助参数:

a = a + b;
b = a - b;
a = a - b;

第一个没别的要求的话直接三个变量取得三门成绩,求和及求均值,最后输出时设置一下输出的格式。
第二个借助变量的话交换过程就是
t=a;
a=b;
b=a;
不借助变量的话可以写
a=a+b;
b=a-b;
a=a-b;

第一题没什么么好说的,声明数据类型为float,用sum循环累加算出三门课程总分,除以课程数目即为平均分。注意输出格式化“%.1f"。。
第二题比较有意思,如果我没记错的话,这道题在《深入操作计算机系统》里出现过。关键就在于,我们希望有一个空间能够暂存数据以用来做临时转移阵地。没有暂存空间的话乍一看不是很难做吗?
我们来回忆一下C语言中的按位运算:与、或和异或。
对于二进制数据,假设a = 0,b = 1,我们能够轻而易举地实现a与b的数据交换,而不用其他变量(空间)做辅助。

 a = a | b;
 b = b | a ;
 a = a | b ;

其实这就是一个智力游戏,应用的原理很简单:a | a = 0 , a | 0 = a。
这里有个小秘密,并不只是对二进制数据可以做如上按位异或操作来实现数据交换,其实对任意整型数据都可以如此操作。
不妨去试一下这段代码,会给你带来不小的惊喜。