定义一个3*3的整型二维数组arr作为一个矩阵,再定义3个函数,分别实现:读入数组中所有元素、按行

定义一个3*3的整型二维数组arr作为一个矩阵,再定义3个函数,分别实现:读入数组中所有元素、按行输出数组中所有元素 矩阵转置。主函数中调用这些函数 实现 读入数组 输出原始矩阵 矩阵转置 输出转置后的矩阵

第1个回答  2014-12-09
#include<stdio.h>
void Ra(int a[3][3]){
int i,j;
printf("input 3x3 matrix\n");
for (j=0;j<3;j++)
for (i=0;i<3;i++) scanf("%d",&a[j][i]);
}
void Pa(int a[3][3]){
int i,j;
printf("\n");
for (j=0;j<3;j++){
for (i=0;i<3;i++) printf("%d ",a[j][i]);
printf("\n");
};
}
void Ta(int a[3][3]){
int i,j,t;
for (j=0;j<3;j++)
for (i=0;i<=j;i++){t=a[i][j]; a[i][j]=a[j][i];a[j][i]=t;}
}

main(){
int a[3][3];
Ra(a);
Pa(a);
Ta(a);
Pa(a);
return 0;
}追问

帮我顺便解决这个呗

在主函数中定义一维数组double array10,读入数组元素,自定义以下函数:输出数组所有元素 ,求平均值 ,寻找最大元素 ,查找某元素是否存在 ,排序。

追答

void fun(double *a, int n){
int i,j;
int v_ave,v_max,sum,t;
//output
for (i=0;i v_max) v_max = a[i];
printf("max is %lf\n",v_max);
//queue
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (a[j]<a[i]){ t=a[i];a[i]=a[j];a[j]=t;};
for (i=0;i<n;i++) printf("%lf ",a[i]);
}
调用 fun(array,10);

追问

真的只有这么短么

不对啊

追答

没写查找部分。若要查找,另加一个参数:
void fun(double *a, int n, double x){
...
// look for x:
{
int flag=0;
for (i=0;i<n;i++) if (a[i]==x) flag=1;
if (flag==0) printf("found x\n"); else printf("not find\n");
}
// end look for x
...
}

追问

可是我打前面一部分调试的时候是错误的啊

能不能检查一下,拜托了

追答

double v_ave,v_max,sum,t; // 是 double 不是 int

追问

好的谢谢

上面的省略号是照着输进去么

追答

省略号 不要,我的意思是 省略号处 填入前面已给你的那部分,组成一个函数。当然,v_ave,v_max,sum,t; 用 double 型。

追问

哦谢谢

求助

从键盘读入六个字符串(字符串长度 <20 ),排序后并输出。输出时,每输出一个字符串后,输出两个空格。

输出与排序要求采用函数来完成。

从键盘读入六个字符串(字符串长度 <20 ),排序后并输出。输出时,每输出一个字符串后,输出两个空格。

输出与排序要求采用函数来完成。

追答

#include

void q(char (*s)[20], int n){
char t[20];
int i,j;
for (j=0;j0) {
strcpy(t,s[i]);strcpy(s[i],s[j]);strcpy(s[j],t);
};
for (j=0;j<n;j++) printf("%s ",s[j]);
}
main()
{
char ss[6][20]={"abc","ABC","1234","xyz","hello","I"};
int i;
printf("input 6 strings\n");
for (i=0;i<6;i++) scanf("%s",&ss[i]);
q(ss, 6);
}

本回答被提问者采纳