文档库 最新最全的文档下载
当前位置:文档库 › 数组作业答案

数组作业答案

一维数组习题:

1、任意输入10个数,求平均数并输出小于平均数的数。
#include
main()
{
int a[10],i,sum=0,aver=0;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
aver=sum/10;
printf("sum=%d,aver=%d\n",sum,aver);
for(i=0;i<10;i++)
if (a[i]}


2、从键盘输入6个数,按逆序输出。
#include
#define N 6 //定义符号变量,有利于程序修改
main()
{
int a[N],i,temp;
printf("Please input a 6-number array:\n");
for(i=0;i{
scanf("%d",&a[i]);
}
for(i=0;i{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\nThe sorted array:\n");
for(i=0;iprintf("%4d",a[i]);
printf("\n");
}


3、从键盘输入若干个0到4之间的整数,用-1作为输入结束的标志。统计0、1、2、3、4出现的次数。
#include
main()
{
int i,s[5]={0},x;//数组s用来统计每个数字出现的次数
printf("Input some numbers(between 0 to 4):\n");
scanf("%d",&x);
while(x!=-1)
{
if (x>=0&&x<=4)
s[x]++;
scanf("%d",&x);
}
for(i=0;i<=4;i++)
printf("%d: %d times\n",i,s[i]);
}


4、已知数组a中的元素已按由小到大顺序排列,从键盘输入一个数插入数组a中,按由小到大的顺序输出新的数组。
#include
main()
{
int a[10]={0,12,17,20,25,28,30};//a[0]为工作单元,从a[1]开始存放数据*/
int x , i, j=6;//j为元素个数
printf("Enter a number: ");
scanf("%d",&x);
a[0]=x;
i=j;/*从最后一个单元开始*/
while(a[i]>x)
{ a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/
a[++i]=x;
j++; /*插入x后元素总个数增加*/
for(i=1;i<=j;i++)
printf("%4d",a[i]);
printf("\n");
}


二维数组习题:

1、从键盘输入一个3*4矩阵,然后按3行4列输出。
#include
#define M 3
#define N 4
main()
{
int i,j,a[M][N];
printf("Input the 2D_array:\n");
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
printf("The array is:\n");
for(i=0;i{
for(j=0;jprintf("%4d",a[i][j]);
printf("\n");
}
}


2、求两个3*3矩阵的乘积。
#include
main()
{
int a[3][3]={1,2,3,1,2,3,1,2,3},b[3][3]={1,2,3,1,2,3,1,2,3},fc[3][3],i,j,k;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
{
fc[i][j]=0;
for (k=0;k<3;k++)
fc[i][j]+=a[i][k]*b[k][j];
}
printf("矩阵积为:\n\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%4d",fc[i][j]);
printf("\n");
}
}


3、从键盘输入一个4*4矩阵,将其逆时针90度后输出。
#include
main()
{
int a[4][4],b[4][4],i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
f

or(i=0;i<4;i++)
for(j=0;j<4;j++)
b[3-j][i]=a[i][j];
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%4d",b[i][j]);
printf("\n");
}
}


字符数组习题:

1、有一行电文译文下面规律译成密码: A->Z a->z B->Y b->y C->X c->x,即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变,要求编程序将一串字符加密,并打印出密码和原文。
#include
main()
{
int i;
char str1[100],str2[100];
gets(str1);
for(i=0;str1[i]!='\0';i++)
if(str1[i]>='A'&&str1[i]<='Z')
str2[i]=2*'A'+25-str1[i]; /* str1[i]表示第(str1[i]-'A'+1)个字母,变成(26-(str1[i]-'A'+1)+1)个字母,对应的ASCII是26-(str1[i]-'A'+1)+1+'A'-1=2*'A"+25-str1[i] */
else if(str1[i]>=97&&str1[i]<=122)
str2[i]=2*'a'+25-str1[i];
else str2[i]=str1[i];
str2[i]='\0';
printf("password is:%s\ninit_word is:%s\n",str2,str1);
}

2、输入一串字符,判断是否是回文,如radar就是一个回文。
#include
#include
main()
{
char s[50];
int i,s_len;
gets(s);s_len=strlen(s);
for(i=0;iif(s[i]!=s[s_len-i-1])
break;
if (i>=s_len/2)
printf("%s is a Palindrome\n",s);
else
printf("%s isn't a Palindrome\n",s);

}

3、编一个程序,将两个字符串S1和S2比较,如果S1>S2,输出一个正数;S1=S2,输出0;S1#include
#include
main()
{
int result=0,i=0;
char a[20],b[20];
gets(a); gets(b);
while(a[i]!='\0'&&b[i]!='\0')
{
if(a[i]!=b[i])
{ result=a[i]-b[i]; break; }
i++;
}
if(a[i]=='\0'&&b[i]!='\0')
result=-b[i];
else if(a[i]!='\0'&&b[i]=='\0')
result=a[i];
printf("返回值为%d\n",result);
}

相关文档
相关文档 最新文档