好文档 - 专业文书写作范文服务资料分享网站

C语言程序设计(第3版)何钦铭 颜 晖 第7章 数组

天下 分享 时间: 加入收藏 我要投稿 点赞

BatchDoc Word文档批量处理工具

a[index]=a[k]; a[k]=temp; }

printf(\ for(i=0;i

return 0; }

2. 求一批整数中出现最多的数字。输入一个正整数n(1≤n≤1000),再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字。例如输入3个整数1234、2345、3456,其中出现次数最多的数字是3和4,均出现了3次。试编写相应程序。 解答:

#include int main(void) { int i,j,k,g,n,max; int a[1000],b[1000],count[1000]; printf(\ scanf(\ printf(\ for(i=0;i

BatchDoc Word文档批量处理工具

BatchDoc Word文档批量处理工具

for(i=0;i<=9;i++) if(max==count[i]) printf(\ return 0; }

3. 判断上三角矩阵。输入一个正整数n (1≤n≤6)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”。上三角矩阵,即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。试编写相应程序。 解答:

#include int main(void) {

int i,j,n,flag; int a[6][6];

printf(\ scanf(\

printf(\ for(i=0;i

for(j=0;j

scanf(\ for(j=1;j

for(i=1;i

if(flag)

printf(\ else

printf(\ return 0; }

4.求矩阵各行元素之和。输入2个正整数m和n (1≤m≤6,1≤ n≤6),然后输入该m行n列矩阵a中的元素,分别求出各行元素之和,并输出。试编写相应程序。 解答:

#include int main(void) {

int i,j,m,n,sum; int a[6][6];

BatchDoc Word文档批量处理工具

BatchDoc Word文档批量处理工具

printf(\ scanf(\ printf(\ scanf(\

printf(\ for(i=0;i

scanf(\ for(i=0;i

for(j=0;j

sum=sum+a[i][j];

printf(\ }

return 0; }

5.找鞍点。输入一个正整数n(1≤n≤6)和n阶方阵a中的元素,假设方阵最多有个鞍..a....1...点,如果找到a的鞍点,就输出它的下标;否则,输出\。鞍点的元素值在该行上最大,,.

在该列上最小。试编写相应程序。 解答:

#include int main(void) {

int flag,i,j,k,row,col,n; int a[6][6];

printf(\ scanf(\

printf(\ for(i=0;i

for(j=0;j

scanf(\ for(i=0;i

for(j=0;j

if(a[i][col]

if(a[i][col]>a[k][col]){ flag=0; break; }

if(flag){

BatchDoc Word文档批量处理工具

BatchDoc Word文档批量处理工具

row=i; break; } }

if(flag)

printf(\ else

printf(\

return 0; }

7.字符串替换。输入一个以回车结束的字符串(少于 80 个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串。试编写相应程序。

原字母 对应字母 A → Z B → Y C → X D → W

……

X → C Y → B Z → A 解答:

#include int main(void) {

int i;

char ch,str[80];

printf(\ i=0;

while((ch=getchar())!='\\n'){ str[i++]=ch; }

str[i]='\\0';

for(i=0;str[i]!='\\0';i++) if(str[i]<='Z'&&str[i]>='A') str[i]='A'+'Z'-str[i]; printf(\

for(i=0;str[i]!='\\0';i++) putchar(str[i]); putchar('\\n');

return 0;

BatchDoc Word文档批量处理工具

BatchDoc Word文档批量处理工具

}

8.字符串转换成十进制整数。输入一个以字符”#”结束的字符串滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果过滤后字符串的首字符为”-”,代表该数是负数。试编写相应程序。 解答:

#include int main(void) { int i,j,k; char hexad[80],str[80]; long number; printf(\ i=0; while((str[i]=getchar())!='#') i++; str[i]='\\0'; k=0; for(i=0;str[i]!='\\0';i++)

if(str[i]=='-'||str[i]>='0'&&str[i]<='9'||str[i]>='a'&&str[i]<='f'||str[i]>='A'&&str[i]<='F') hexad[k++]=str[i]; hexad[k]='\\0'; j=1; if(hexad[0]=='-'){ for(k=1;hexad[k]!='\\0';k++) if(hexad[k]!='-') hexad[j++]=hexad[k]; } else{ j=0; for(k=0;hexad[k]=!'\\0';k++) if(hexad[k]!='-') hexad[j++]=hexad[k];} printf(\ for(i=0;hexad[i]!='\\0';i++) putchar(hexad[i]); printf(\ number=0; for(i=0;hexad[i]!='\\0';i++){ if(hexad[i]>='0'&&hexad[i]<='9') number=number*16+hexad[i]-'0'; else if(hexad[i]>='A'&&hexad[i]<='F') number=number*16+hexad[i]-'A'+10;

BatchDoc Word文档批量处理工具

8jgmb7lxz47f1wl0k4bu3bj0w6iihw013p0
领取福利

微信扫码领取福利

微信扫码分享