二级C语言考试辅导教程第四章:数组[5]

二级C语言考试辅导教程第四章:数组[5],第1张

二级C语言考试辅导教程第四章:数组[5],第2张

选取二维数组A中每一行的元素组成一个一维数组b . A = 3 16 87 65 4 32 11 108 10 25 12 37b =(87 108 37)这个问题的编程思路是找到数组A中每一行的元素,然后将值赋给数组b中对应的元素,程序如下:
main()
{
static int A[]在这个程序的第一个for语句中,使用gets函数输入五个国家名称字符串。如上所述,C语言允许将一个二维数组视为多个一维数组。这个程序显示cs[5][20]是一个二维字符数组,可以分为五个一维数组cs[0],cs[1],cs[2],cs[3],cs[4]。因此,在gets函数中使用cs[i]是合法的。另一个for语句嵌套在第二个for语句中,形成一个双循环。这种双重循环完成了字母排序。在外循环中,将字符数组cs[i]中的国家名称字符串复制到数组st中,将下标I赋予p,进入内循环后,将st与cs[i]后的每个字符串进行比较。如果小于st,则将字符串复制到st,将其下标赋给P,内循环完成后,如果P不等于I,则出现小于cs[i]的字符串,于是cs[i]和st的内容互换。至此,数组cs的第I个元素的排序值已经确定。然后输出字符串。外循环完成后,完成所有排序和输出。
= { 3,16,
int b输入五个国家的名称,按字母顺序输出。
这个问题的编程思路是:用一个二维字符数组处理五个国家的名称。但是C语言规定一个二维数组可以当作多个一维数组。所以这个题目可以看成五个一维数组,每个一维数组都是一个国名字符串。用字符串比较函数比较每个一维数组的大小,排序,输出结果。
编程如下:
void main()
{
charst[20],CS[5][20];
int i,j,p;
printf("输入国家名称:\ n ");
for(I = 0;I gets(cs[I]);
printf(" \ n ");
for(I = 0;i { p = istrcpy(st,cs[I]);
for(j = I+1;j if(strcmp(cs[j],st) if(p!=i)
{
strcpy(st,cs[I]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],ST);
}
puts(cs[I]);} printf(" \ n ");
},I,j,l;
for(I = 0;I { l = a[I][0];
for(j = 1;j if(a[I][j]> l)l = a[I][j];
b[I]= l;}
printf(" \ n array a:\ n ");
for(I = 0;I { for(j = 0;j printf("%5d ",a[I][j]);
printf(" \ n ");}
printf(" \ n array b:\ n ");
for(I = 0;i printf("%5d ",b[I]);
printf(" \ n ");
}
程序中的第一个for语句与另一个for语句嵌套在一起,形成一个双循环。外循环控制逐行处理,每一行的第0列元素赋给L,进入内循环后,将L与后面各列元素进行比较,大于L的赋给L,内循环结束时,L为该行的元素,然后将L的值赋给b[i]。当外部循环完成时,数组B已经加载了a的每一行中的值。

[3]

[4]

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 二级C语言考试辅导教程第四章:数组[5]

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情