您的位置:首页 > 其它

实验 6 数组1

2013-10-28 09:15 78 查看
/*输入n个整数,将它们存入数组a中。输出最大值和它所对应的下标*/
#include<stdio.h>
int main(void)
{
int max(int x,int y);      /*函数声明*/
int a[10],m,n,i;
printf("输入10个数字:");
for(i=0;i<10;i++)          /*输入10个数给a[0]~a[10]*/
scanf_s("%d",&a[i]);
printf("\n");
for(i=1,m=a[0],n=0;i<10;i++)
{
if(max(m,a[i])>m)      /*若max函数返回值大大于m*/
{
m=max(m,a[i]);     /*max函数返回的值取代m原值*/
n=i;               /*把此数组元素的序号记下来,放在n中*/
}
}
printf("最大数是:%d\n标号为:%d\n",m,n);
}
int max(int x,int y)           /*定义max函数*/
{
return(x>y? x:y);          /*返回x和y中的大者*/
}




2、输入n个整数,存入数组a中,分别按正序和逆序输出这些数;

/* 分别按正序和逆序输出n个整数 */
#include<stdio.h>
int main(void)
{
int n,a[10],i;                       //定义一个整型数组
printf("输入n:");
scanf_s("%d\n",&n);
for(i=0;i<n;i++){                  //把n的值,赋给a[i]
scanf_s("%d",&a[i]);
}
printf("正序输出一维数组a\n");        //正序输出数组结果
for(i=0;i<n;i++){
printf("数组元素a[%d],元素值%6d\n",i,a[i]);
}
printf("\n");
printf("逆序输出一维数组a\n");         //逆序输出
for(i=n-1;i>=0;i--){
printf("数组元素a[%d],元素值%6d\n",i,a[i]);
}
return 0;
}




3、定义一维数组arr,他有5个双精度浮点型元素,任意输入5个后,用冒泡排序法,由大到小排序并输出:

/* 用冒泡排序法,由大到小排序并输出数字 */
#include<stdio.h>
int main(void)
{
int i,j;
double f[5]; //定义浮点型数组
double t;
printf("请输入5个实数:\n");  //赋值
for(i=0;i<5;i++){

scanf_s("%Lf",&f[i]);
}
printf("\n");
for(j=0;j<5;j++)              //冒泡法,即进行4次循环,其中每个元素循环i-j次
for(i=0;i<5-j;i++)
if(f[i]<f[i+1]){          //若第i项小于后一项,则两项调转位置
t=f[i+1];f[i+1]=f[i];f[i]=t;
}
printf("由大到小排序后:\n");
for(i=0;i<5;i++)    {        //输出排列后的结果

printf("%Lf",f[i]);
printf("\n");
}
return 0;
}




4、设计一个程序,利用二维数组输出3x2矩阵

/* 利用二维数组输出3x2矩阵 */
#include<stdio.h>
int main(void)
{
int i,n;
int a[3][2];              //定义一个二维数组
printf("enter a:");       //由行到列赋值
for(i=0;i<3;i++){
for(n=0;n<2;n++){
scanf_s("%d",&a[i]
);
}
}
for(i=0;i<3;i++){           //输出矩阵
for(n=0;n<2;n++){
printf("%6d",a[i]
);
}
printf("\n");
}

return 0;
}




5、定义一个3×3的整形二维数组arr,为数组各元素赋值,找出最小值以及它的行下标和列下标,并输出该矩阵

/* 定义一个3×3的整形二维数组arr,为数组各元素赋值,找出最小值以及它的行下标和列下标,并输出该矩阵 */
#include<stdio.h>
int main(void)
{
int i,n;
int a[3][3];                //定义一个3*的整型二维数组
printf("enter a:\n");       //为该数组赋值
for(i=0;i<3;i++){
for(n=0;n<3;n++){
scanf_s("%d",&a[i]
);
}
}
printf("输入数组为:\n");
for(i=0;i<3;i++){
for(n=0;n<3;n++){

printf("%6d",a[i]
);
}
printf("\n");
}
int row=0,colum=0,min;        // 定义整型变量row=行,colum=列,min为最小值
min=a[0][0];                  //首先认为a[0][0]为最小
for(i=0;i<3;i++)
for(n=0;n<3;n++)
if(a[i]
<min){     //如果某元素小于a[0][0]
min=a[i]
;     //记下它的行号和列号,使它成为新的最小值
row=i;
colum=n;
}
printf("第%d行第%d列最小值是%d",row+1,colum+1,min);    //由于数组是从0开始计数,所以要使它的行和列数加一
printf("\n");
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: