printf("%d",a[i]);
printf("\n");
}
【题7.39】编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出nofound。
/*lx7_3.c*/
#include"stdio.h"
#defineN10
voidmain()
{inta[N];
intnum,i;
charch='n';
printf("请输入一个数组:
\n");
for(i=0;iscanf("%d",&a[i]);
printf("输出数组:
\n");
for(i=0;iprintf("%d",a[i]);
printf("\n");
printf("请输入一个数\n");
scanf("%d",&num);
printf("开始查找\n");
for(i=0;iif(num==a[i])
{ch='y';
printf("%d在数组的第%d位\n",num,i+1);
}
if(ch=='n')
printf("nofound\n");
}
【题7.40】若有说明:
inta[2][3]={{1,2,3},{4,5,6}};,现要将a的行和列的元素互换后存到另一个二维数组b中,试编程。
/*lx7_4.c*/
#include"stdio.h"
voidmain()
{inta[2][3]={{1,2,3},{4,5,6}},b[3][2];
inti,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
for(i=0;i<2;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
printf("%d\t",b[i][j]);
printf("\n");
}
}
【题7.41】定义一个含有30个整数的数组,按顺序分别赋予从2开始的偶数,然后按顺序每五个数求出一个平均值,放在另一个数组中并输出,试编程。
/*lx7_5.c*/
#include"stdio.h"
#defineN30
#defineM5
voidmain()
{inta[N],sum[N/M];
floats;
inti,j,k=0;
for(i=0;i{a[i]=2*(i+1);
printf("%d\t",a[i]);
}
printf("\n");
for(i=0;i{s=0;
for(j=i;j
s=s+a[j];
sum[k++]=s/M;
}
for(i=0;iprintf("%d\t",sum[i]);
}
【题7.42】编写程序,在5行7列的二维数组中查找第一次出现的负数。
/*lx7_6.c*/
#include"stdio.h"
voidmain()
{inti,j,a[5][7];
printf("请输入一个二维数组\n");
for(i=0;i<5;i++)
for(j=0;j<7;j++)
scanf("%d",&a[i][j]);
printf("\n");
for(i=0;i<5;i++)
for(j=0;j<7;j++)
if(a[i][j]<0)
{printf("第一次出现的负数被找到!
负数值是%d\n",a[i][j]);
gotoend1;
}
end1:
;
}
【题7.43】从键盘上输入60个字符,求相邻字母对(如ab)出现的频率。
/*lx7_7.c*/
#include"stdio.h"
#include"string.h"
#defineN60
voidmain()
{inti,len;
charch[N];
floatp,m=0;
printf("请输入一个字符串:
\n");
scanf("%s",ch);
len=strlen(ch);
for(i=0;ch[i]!
='\0'&&iif(ch[i]==ch[i+1]+1||ch[i]+1==ch[i+1])
m++;
p=m/len;
printf("相邻字母对出现的频率是%f\n",p);
}
【题7.44】编写程序,定义数组inta[4][6],b[4][6],c[4][6],并完成如下操作:
(1)从键盘上输入数据给数组a、b。
(2)将数组a与数组b各对应元素作比较,如果相等,则数组c的对应元素为0,若前者大于后者,则数组c的对应元素为1;若前者小于后者,则数组c的对应元素为−1。
(3)输出数组c各元素的值。
/*lx7_8.c*/
#include"stdio.h"
voidmain()
{inti,j;
inta[4][6],b[4][6],c[4][6];
for(i=0;i<4;i++)
for(j=0;j<6;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<6;j++)
scanf("%d",&b[i][j]);
for(i=0;i<4;i++)
for(j=0;j<6;j++)
if(a[i][j]==b[i][j])
c[i][j]=0;
elseif(a[i][j]>b[i][j])
c[i][j]=1;
else
c[i][j]=-1;
for(i=0;i<4;i++)
{for(j=0;j<6;j++)
printf("%d\t",c[i][j]);
printf("\n");
}
}
【题7.45】编写程序,从键盘上输入两个字符串a和b,要求不用strcat()函数把串b的前五个字符连接到串a中,如果b的长度小于5,则把b的所有元素都连接到a中。
/*lx7_9.c*/
#include"stdio.h"
#include"string.h"
#defineN80
voidmain()
{chara[N],b[N];
inti,j,lena,lenb;
printf("Pleaseinputfirststring:
");
scanf("%s",a);
printf("Pleaseinputsecondstring:
");
scanf("%s",b);
lena=strlen(a);
lenb=strlen(b);
if(lenb<=5)
{for(i=lena,j=0;ia[i]=b[j++];
a[i]='\0';
}
else
{for(i