梧州市万秀区邮政编码:C语言的问题~~~懂的进

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 01:12:06
1:求一个矩阵对角线元素之和
2:从键盘输入10个整数,用起泡排序和选择排序对输入的数进行小到大的顺序进行排序

回复1:
(以3行3列矩阵为例求对角线元素之和)
//利用双重for循环控制输入二维数组,再将a[i][i]累加后输出
main()
{
float a[3][3],sum=0;
int i,j;
printf("please input rectangle element:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("duijiaoxian he is %6.2f",sum);
getch();
}
————————————————————————————
回复2:

/*冒泡排序(buddle sort)*/
main()
{
int a[11];
int i,j,t;
clrscr();
printf("input 10 numbers :\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<=9;j++)
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the sorted numbers:\n");
for(i=1;i<11;i++)
printf("%d ",a[i]);
getch();
}
(2)/*选择排序(select sort)*/
main()
{
int i,j,a[10],t;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<=8;i++)
for(j=i;j<=8;j++)
{t=a[i];
if(a[j]>a[j+1])
{a[i]=a[j+1];
a[j+1]=t;}
}
for(i=0;i<=9;i++)
printf("%d ",a[i]);
getch();
}
_________________________________________________
提示:作业最好自己先做……老感觉自己像个给人做作业的工具。

问题1:
int i;
int sum=0;
for(i=0;i<n;i++)
sum+=matrix[i][i];

第2题:
#include <stdio.h>
#define N 10
main()
{ int i,j,t;
int a[N]={7,3,2,5,9,1,6,10,4,8};
for(i=0;i<N;i++)
{ for(j=N-1;j>1;j--)
if(a[j-1]>a[j])
{ t=a[j-1];
a[j-1]=a[j];
a[j]=t
}
}
printf("排序结果为:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
}

int main()
{
int a[4][4];
int i,j,s=0;
for(i=0;i<10;i++) // 输入 16 个数字用空格或者回车隔开
for(j=0;j<10;j++)
scanf("%d ",&a[i][j]);

for( i=0 ;i<10;i++) //求对角线和
s+=a[i][i];
printf("%d",s); //输出结果
}
问题2
//气泡法
main()
{
int s[10]={ 1,2,3,4,5,6,7,8,9,10};
int i,x,y,a;
for(i=0;i<10;i++) // 输入 10 个数字用空格或者回车隔开
scanf("%d ",&a[i]);
for( x=0 ;x<9 ; x++ ) //冒泡法循环次数 8
for( y=0 ;y<9 ; y++ ) // 对数组进行一次冒泡
if(s[y]>s[y+1]) //比较大小
{
a=s[y]; //符合条件交换
s[y]=s[y+1];
s[y+1]=a;

}
for( i=0 ; i<10 ; i++ ) //输出排序后结果
printf("%d",s[i]);
}
//选择排序
main()
{
int s[10];
int i,x,y,a;
for(i=0;i<10;i++) // 输入 10 个数字用空格或者回车隔开
scanf("%d ",&a[i]);

for( x=0 ;x<9 ; x++ ) //从数组第一个数字开始 ,一直到最后
for( y=x ;y<10 ; y++ ) //与后边的数字比较
if(s[x]>s[y]) //比较大小
{ //符合条件交换
a=s[x];
s[x]=s[y];
s[y]=a;
}
for( i=0 ; i<10 ; i++ ) //输出结果
printf("%d ",s[i]);
}
简单的问题,这个是训练语言功底的,还是好好研究,看明白了自己,从新写出来一个

第一题:假设是4维的
#include<stdio.h>
void main()
{int a[4][4];
int i,j,sun=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<4;i++)
sum=sum+a[i][i];
printf("%d",sum);
}