#include<stdio.h> int main (void) { int a,b,c; double sum,average; printf("请分别输入数学,英语,计算机的成绩\n"); scanf("%d,%d,%d",&a,&b,&c); sum=a+b+c; average=sum/3.0; printf("%4.2f %4.2f",sum,average); return 0; }
时间: 2024-03-18 13:45:29 浏览: 51
这段代码可以实现输入某同学数学、外语和计算机三门课的成绩,计算并输出该同学总分和平均成绩(保留小数点后两位)。其中,%4.2f 表示输出浮点数,总宽度为 4,小数点后保留 2 位。
与我的代码示例相比,这段代码的输入方式稍有不同,使用了逗号分隔符来输入三个整数。同时,这段代码还需要使用 double 类型来存储总分和平均成绩,以保证计算结果的精度。
相关问题
输入一个3行3列的二维数组,输出二维数组中行列号之和为3的数组元素以及它们的平均值。 #include<stdio.h> int main(void) {int a[3][3],i,j,k,sum=0,count=0; for(i=0; i<3;i++) for(j=0; j<3 ;j++) 1 分 ; for(i=0; i<3;i++) for(j=0;j<3;j++) { k=i+j; if( 1 分 ) {printf("%d\n",a[i][j]); 1 分 ; 1 分 ; } } printf("average=%.2lf\n", 1 分 ); return 0; } 上一题 保存
#include<stdio.h>
int main(void) {
int a[3][3],i,j,k,sum=0,count=0;
for(i=0; i<3;i++)
for(j=0; j<3 ;j++)
scanf("%d",&a[i][j]); //输入二维数组
for(i=0; i<3;i++)
for(j=0;j<3;j++) {
k=i+j;
if(k==3-1) { //行列号之和为3的元素
printf("%d\n",a[i][j]);
sum+=a[i][j]; //求和
count++; //计数器
}
}
printf("average=%.2lf\n", (double)sum/count); //求平均值
return 0;
}
#include <stdio.h> #include <time.h> #include <stdlib.h> double average(int score[], int n); // 函数返回平均分 int sum(int *score, int n); // 函数返回总分 int max(int *score, int n); // 函数返回最大值 int min(int *score, int n); // 函数返回最小值 void showScore(int *score, int n); // 显示所有分数 int main(){ srand(time(NULL)); const int N = 30; int score[N]; for (int i = 0; i < N; i ++) score[i] = rand() / 101; showScore(score, N); int aver = average(score,N);// 计算平均分 int s = sum(score,N);// 计算总分 int maxScore = max(score,N);// 查找最高分 int minScore = min(score,N);// 查找最低分 } double average(int *score, int n) { double ave; ave=double(sum(score,n))/n; printf("ave=%lf\n",ave); // 计算均分 } int sum(int *score, int n) { // 计算总分 int sum; for(int i=0;i<n;i++) { sum+=score[i]; } printf("sum=%d\n",sum); } int max(int *score, int n) { // 查找最高分 int max=score[0]; for(int i=0;i<n;i++) { if(max<score[i]) { max=score[i]; } } printf("max=%d\n",max); } int min(int *score, int n) { // 查找最低分 int min=score[0]; for(int i=0;i<n;i++) { if(min>score[i]) { min=score[i]; } } printf("min=%d\n",min); } void showScore(int *score, int n) { // 显示所有分数 printf("所有分数如下:\n"); for(int i=0;i<n;i++) { printf("%d ",*(score+i)); } printf("\n"); }这串代码为什么多的哪一行sum数值错误
这是因为在函数sum中没有初始化变量sum的值,导致sum的初始值为随机值,会影响最终的计算结果。解决方法是在函数sum中将sum的初始值设为0。具体修改如下:
```
int sum(int *score, int n) {
// 计算总分
int sum = 0; // 初始化sum的值为0
for(int i=0;i<n;i++)
{
sum+=score[i];
}
printf("sum=%d\n",sum);
}
```
阅读全文
相关推荐

















