C语言 从键盘输入9个不同的整数,组成三行三列的二维数组,找出每一列中的最大元素,并输出其行、列下标
#includestdio.h
void main()
{int i,j,a[3][3],max=a[0][0],row=0,col=0;
for(i=0;i3;i++)
for(j=0;j3;j++)
scanf(“%d”,a[i][j]);
{if(a[i][j]max)
row=i;
col=j;
}
printf(“最大值为:%d\n行标为:%d\n列标为:%d”,a[i][j],row,col);
}
c语言编写程序,从键盘输入6名学生5门功课成绩,分别统计出每个学生的平均成绩
一、问题分析
需要保存6名学生5门功课的成绩,需要设计一个6行5列大小的二维数组scores[6][5]来存储30个成绩数据。保存6名学生的平均成绩,需要设计一个6列大小的一维数组来avgs[6]存储平均成绩。
为使程序具有更好的通用性,使用宏定义定义学生人数M和课程门数N。
计算每个学生的平均成绩时,累加该行所有列的成绩数据,并除以列大小即为该学生的平均成绩。
二、参考程序
#include stdio.h
#define M 6/* 学生人数 */
#define N 5/* 课程门数 */
/* 输入row个学生col门课程的成绩 */
void input(double scores[][N], int row, int col);
/* 计算row个学生的平均成绩并保存在avgs数组中 */
void average(double scores[][N], int row, int col, double avgs[]);
/* 输出所有学生的平均成绩 */
void output(double avgs[], int size);
void main()
{
double scores[M][N];
double avgs[M];
input(scores, M, N);
average(scores, M, N, avgs);
output(avgs, M);
}
/* 输入row个学生col门课程的成绩 */
void input(double scores[][N], int row, int col)
{
int i, j;
printf(“请输入%d个学生%d门课程的成绩,每个学生成绩在一行,以空格分隔成绩:\n”, row, col);
for(i=0; irow; i++)
{
for(j=0; jcol; j++)
{
scanf(“%lf”, scores[i][j]);
}
}
}
/* 计算row个学生的平均成绩并保存在avgs数组中 */
void average(double scores[][N], int row, int col, double avgs[])
{
int i, j;
for(i=0; irow; i++)
{
avgs[i] = 0.0;
for(j=0; jcol; j++)
{
avgs[i] += scores[i][j];
}
avgs[i] /= col;
}
}
/* 输出所有学生的平均成绩 */
void output(double avgs[], int size)
{
int i;
printf(“%6s%10s\n”, “序号”, “平均成绩”);
printf(“—————————-\n”);
for(i=0; isize; i++)
{
printf(“%6d%10.2lf\n”, i+1, avgs[i]);
}
}
三、运行测试
求C语言源代码:从键盘输入两个矩阵,输出这两个矩阵和这两个矩阵相乘的矩阵?
写的有点烦了,不过你看的懂就可以:
#include iostream
#include vector
#include algorithm
#include stdio.h
#include string.h
using namespace std;
typedef vectorvectorint matrix;
typedef vectorint row;
void GetMatrix(matrix m)
{
row tmp;
int n;
size_t size = 0;
while(cin.peek() != ‘#’)
{
cin.unsetf(ios::skipws);
while(cin cin.peek() != ‘\n’)
{
while(cin.peek() == ‘ ‘)
cin.get();
if(cin.peek() == ‘#’)
break;
cin n;
while(cin.peek() == ‘ ‘)
cin.get();
tmp.push_back(n);
}
if(cin.peek() != ‘#’)
cin.get();
if(!cin)
{
cerr “ERROR: Invalid input characters.\n”;
exit(0);
}
if(size != 0 size != tmp.size())
{
cerr “ERROR: Jagged matrix not allowed.\n”;
exit(0);
}
size = tmp.size();
m.push_back(tmp);
tmp.clear();
}
cin.ignore(512, ‘\n’);
}
void PrintMatrix(const matrix m)
{
static char num[32];
int max = *max_element(m[0].begin(), m[0].end());
int n;
for(size_t i = 1; i m.size(); ++i)
if(max (n = *max_element(m[i].begin(), m[i].end())))
max = n;
sprintf(num, “%d”, max);
cout.setf(ios::left);
for(size_t i = 0; i m.size(); ++i)
{
for(size_t j = 0; j m[i].size(); ++j)
{
cout.width(strlen(num));
cout m[i][j] ‘ ‘;
}
cout ‘\n’;
}
}
void MatrixMul(const matrix m1, const matrix m2, matrix product)
{
if(m1[0].size() != m2.size())
{
cerr “Candidate not allowed.\n”;
cerr “If m1 is a m * n matrix so m2 must be a n * p matrix.\n”;
exit(0);
}
for(size_t i = 0; i m1.size(); ++i)
{
product.push_back(row());
for(size_t j = 0; j m2[0].size(); ++j)
{
product[i].push_back(0);
for(size_t k = 0; k m1[0].size(); ++k)
product[i][j] += m1[i][k] * m2[k][j];
}
}
}
int main()
{
matrix m1, m2, m3;
cout “Enter matrix1:\n”;
GetMatrix(m1);
cout “\nEnter matrix2:\n”;
GetMatrix(m2);
MatrixMul(m1, m2, m3);
cout “\n\nmatrix 1: ” m1.size() ” × ” m1[0].size() ‘\n’;
PrintMatrix(m1);
cout “\n\nmatrix 2: ” m2.size() ” × ” m2[0].size() ‘\n’;
PrintMatrix(m2);
cout “\n\nm1 * m2: ” m3.size() ” × ” m3[0].size() ‘\n’;
PrintMatrix(m3);
}
C语言:从键盘输入一个a[4][4]的矩阵,求其每列的和放到b[4]数组中
#includestdio.h
int main()
{
int a[4][4];
int b[4]={0};
int i;
int j;
for(i =0;i4;i++)
{
for(j=0;j4;j++)
{
scanf(“%d”,a[i][j]);
}
}
for(i =0;i4;i++)
{
for(j=0;j4;j++)
{
b[i] += a[j][i];
}
}
for(i = 0;i4;i++)
{
printf(” %d”,b[i]);
}
getchar();
return 0;
}
C语言定义一个2行3列的二维整形数组,从键盘对其进行赋值,分别求每一行的和及每一列的和,并输出
#include stdio.h
int main(void)
{
int i, j;
int a[2][3];
int row_sum[2] = {0};
int colum_sum[3] = {0};
/*初始化数组*/
printf(“Please input a array:\n”);
for(i=0; i2; i++)
for(j=0; j3; j++)
scanf(“%d”, a[i][j]);
/*求行和和列和*/
for(i=0; i2; i++)
{
for(j=0; j3; j++)
{
row_sum[i] += a[i][j];
colum_sum[j] += a[i][j];
}
}
/*输出行和*/
for(i=0; i2; i++)
printf(“row_sum[%d] = %d\n”, i, row_sum[i]);
printf(“\n”);
for(j=0; j3; j++)
printf(“colum_sum[%d] = %d\n”, j, colum_sum[j]);
return 0;
}
已经给你做出来了,记得要加分啊,不会的话给我流言, 962344039@qq.com