记录一下C语言p165的练习题
7•1的内容数组
7-2求最大值及其下标
#include<stdio.h>
int main(void)
{
int n,i,t;
int a[10],max;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=0;
for(i=0;i<n;i++)
if(a[i]>a[max])
max=i;
printf("%d %d\n",a[max],max);
return 0;
}
7-3将数组中的数逆序存放
#include<stdio.h>
int main(void)
{
int n,i,t,j;
int a[10],max;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
//重点:涉及了选择排序法
for(i=0;i<n;i++)
{
max=i;
for(j=i+1;j<n;j++)
{
if(a[j]>a[max])
{
t=a[j];
a[j]=a[max];
a[max]=t;
}
}
}
for(i=0;i<n;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 <stdio.h>
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;
}