2021-12-15一维数组

记录一下C语言p165的练习题

7•1的内容数组

7-2求最大值及其下标

#include

int main(void)

{

int n,i,t;

int a[10],max;

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

max=0;

for(i=0;i

if(a[i]>a[max])

max=i;

printf("%d %d\n",a[max],max);

return 0;

}

7-3将数组中的数逆序存放

#include

int main(void)

{

int n,i,t,j;

int a[10],max;

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

//重点:涉及了选择排序法

for(i=0;i

{

max=i;

for(j=i+1;j

{

if(a[j]>a[max])

{

t=a[j];

a[j]=a[max];

a[max]=t;

}

}

}

for(i=0;i

printf("%d ",a[i]);

putchar('\n');

for(i=n-1;i>=0;i--)

printf("%d ",a[i]);

putchar('\n');

return 0;

}

7-4找出不是两个数组的共有元素

#include

int main()

{

    int str1[20], str2[20], str3[40];//第一行,第二行,要输出的

    int len1, len2, len3;//长度

    int i, j;

    int temp = 0, num = 0;

    scanf("%d", &len1);//输入第一行

    for (i = 0; i < len1; i++)

    {

        scanf("%d", &str1[i]);

    }

    scanf("%d", &len2);//输入第二行

    for (i = 0; i < len2; i++)

    {

        scanf("%d", &str2[i]);

    }

    for (i = 0; i < len1; i++)//找出第一行与第二行不同的数字

    {

        for (j = 0; j < len2; j++)

        {

            if (str1[i] == str2[j])

            {

                break;

            }

        }

        if (j == len2)

        {

            str3[temp] = str1[i];

            temp++;

        }

    }

    for (i = 0; i < len2; i++) //找出第二行与第一行不同的数字

{

for (j = 0; j < len1; j++)

if (str2[i] == str1[j])break;

if (j == len1)

{

str3[temp] = str2[i];

temp++;

}

}

    for (i = 0; i < temp; i++)

    {

        for (j = 0; j < i; j++)//有可能一行中有相同的数字且另一行不存在垓数字,注意不能重复输出

        {

if (str3[i] == str3[j])break;

        }

        if (i == j)

        {

            if (num != 0)printf(" ");//控制空格的输出

printf("%d", str3[i]);

num++;

        }

    }

    return 0;

}

你可能感兴趣的:(2021-12-15一维数组)