数组编程习题解答

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for( i=0; i<n; i++)
if ( a[ i]>max ) max=a[i];
else if( a[ i]<min) min=a[ i];
printf( the largest number is m\n, max); printf( the least number is m\n, min); }
main()
{ int a[10]={5, 12, 39, 60}, i, x;
scanf(%d, &x); for(i=3; i>=0; i--)
if ( x>= a[i] ) break; else a[i+1] = a[i];
a[i+1Baidu Nhomakorabea = x;
for ( i=0;i<10 ; i++)
printf(m, a[i] );
数组编程讲解
2.求一个3*3的整型矩阵对角线之和
对角线元素怎样描述?
a[i][i]
int sum=0 , i , a[3][3]; for(i = 0; i< 3; i++) { sum=sum+ a[i][i] ; }
牰湩晴?对角线之和=m , sum);
3. 输入一个数, 将其插入到一个已排好序的数组中 , 使得原 数组依然按原序有序。
3. 对数组 a 进行排序: ? 因题目未指定排序方法,所以, 可以使用任何方法排序。
对数组 a 进行排序(选择法)
for( i=0; i<n-1; i++) { p=i;
for ( j = i+1; j<n; j++) if ( a[ j]>a[ p] ) p=j;
if( p!=i){ med=a[ i]; a[ i]=a[ p]; a[ p]=med; }
gets(ch1); i=0;
do {ch2[i]=ch1[i];} while (ch1[i]);
习题
1. 将10个整数放到一维数组中,并按从 大到小排序。
1. 定义一个一维整数数组 : char a[10];
2. 输入10个整数: 牰湩晴尨请输入 10个整数 :\n);
for(i=0;i<10;i++) scanf(%d,&a[i]);
3. 将15个整数放到一维数组中,输出该数 组中的最大值它的下标。然后将它和数组 中的最前面的元素对换。
程序:
for( i=0; i<n-1; i++) {
#include<stdio.h>
p=i;
#define n 10 void main() {
int a[n], i, j, p, med;
for ( j = i+1; j<n; j++)
if ( a[ j]>a[ p] ) p=j;
if( p!=i){
printf(\ ); }
2. 将20个整数放到一维数组中,输出该数 组中的最大值和最小值。
① 定义一个一维整数数组 : char a[20];
② 输入20个整数: 牰湩晴尨请输入 20个整数 :\n);
for(i=0;i<20;i++) scanf(%d,&a[i]);
③ 找出数组 a 中的最大值和最小值:
③ .找出数组 a 中的最大值和最小值:
?设: ?max 中存放最后找到的最大值; ?min 中存放最后找到的最小值;
?不妨设: max=a[0];min=a[0]; ?for ( i = 0; i<20; i++)
if ( a[ i]>max ) max=a[i]; else if( a[ i]<min) min=a[ i];
}
4. 将一个数组中的值按逆序存放。
原序 09 81 27 36 45 54 63 27 18 09
逆序
98 76543210
? for ( i=0 ; i< 10/2 ; i++)
?
{
temp=a[i];
?
a[i]=a[n-1-i];
?
a[n-1-i]=te为mp数; 组} 元/素*的n个数。
for(i=0; i<5; i++) { for( j=0;j<i; j++) putchar(‘ '); puts(ch); putchar(‘\n');
}
7. 字符串复制
ch1 a p p l e \0
ch2 a p p l e \0
char ch1[80], ch2[80];
int i;
for(i=0; i<80; i++) ch2[i]=‘ ' ;
v 数字个数:digit
v 空格个数:blank
v 其他字符个数:others
处理方式:
for(i=0;i<3;i++)
for(j=0;j<80;j++)
if(ch[i][j]>=‘A' && ch[i][j] <= ‘Z' ) u else if(ch[i][j]>=‘a' && ch[i][_j] <= ‘
5. 有一篇文章, 有三行文字, 每行有80 个字符。要求统计出其 中英文大写字母、小写字母、数字、空格以及其他字符的个数
1. 三行文字的存放方式:
v
二维字符数组-〉ch[3][80];
2. 各类字符的个数变量:
v 大写英文字母的个数:uppercase
v 小写英文字母的个数:small _letter
letter ++;
else if(ch[i][j]>=‘0' && ch[i][j] <= else if(ch[i][j] ==‘ ' ) blank++;
else others++;
6.打印以下图案:
***** ***** ***** ***** *****
Ch * * * * * \0
***** ***** ***** ***** *****
#include<stdio.h> #define n 20 void main(){
int a[n], i, max, min;
printf( please input ); printf( %d integers: , n);
for( i=0; i<n; i++) scanf( % d, &a[i] );
med=a[ i]; a[ i]=a[ p]; a[ p]=med; }
printf( please input ); printf( %d integers: , n); for( i=0; i<n; i++)
scanf( %d, &a[i] );
for( i=0; i<n; i++)
printf(m, a[i]);
相关文档
最新文档