char s[101];
int i=0,n1=0,n2=0,max=0,e=0; gets(s);
n1=strlen(s);
for(i=n1-1;i>=0;i--) a[n1-1-i]=s[i]-'0'; gets(s);
n2=strlen(s);
for(i=n2-1;i>=0;i--) b[n2-1-i]=s[i]-'0'; if(n1>n2) max=n1; else max=n2;
for(i=0;i<=max;i++)
{ c[i]=(a[i]+b[i]+e); e=(a[i]+b[i]+e)/10; }
if(c[max]>0) printf(\ for(i=max-1;i>=0;i--) printf(\ }
*[题目:找矩阵中的鞍点]
由键盘输入一个3×4(3行4列)的矩阵,输出矩阵中的鞍点(即在矩阵行中最大,列中最小的数)。
若没有鞍点,输出“NO”字样。 [自测数据] [键盘输入]
87 90 110 98↙ 70 97 210 65↙ 98 45 120 30↙ [正确输出] 110 21
参考程序:
#include
main()
{ int i,j,k,a[3][4],max,maxj,flag; for(i=0;i<3;i++) for(j=0;j<4;j++)
scanf(\ for(i=0;i<3;i++) { max=a[i][0]; maxj=0;
for(j=0;j<4;j++) if(a[i][j]>max)
{max=a[i][j]; maxj=j; } flag=1;
for(k=0;k<3;k++) if(max>a[k][maxj]) { flag=0; break; } if(flag)
{printf(\ }
if(!flag)
printf(\ } 22
实验 8 字符数组的应用 一、实验目的
(1)掌握字符数组和字符串函数的使用。 (2)掌握与字符串处理有关的算法。 二、实验内容
[题目 1121:定义存贮字符串的字符数组]
在下面程序中填充定义字符数组的语句,使程序完整。 #include \ void main()
{ char s[80]; /*定义字符数组s*/ strcpy(s, \ printf(\ }
参考程序:
[题目 1123:字符串的输入与输出]
下面程序实现从键盘读入字符串,然后输出到屏幕,请填充必要的语句。 参考程序:
#include \ void main() {
char s[50];
printf(\
gets(s); /*由键盘读入字符串*/ printf(\
printf(\ /*打印字符串*/ }
{题目1145:回文串}
读入一行字符串(不多于80个字符,以回车结束),判断该字符串是否为回文串(即从左向右拼写与从右向左拼写是一样的),是输出Y,否输出N。 参考程序: #include”stdio.h” #include”string.h” main() { char c[80]; int i=0,k,n=0; gets(c); k=strlen(c)-1; for(i=0;i 自测数据: 1、输入 2、输入 aba abc 输出 输出 Y N [题目 1122:字符串的合并] 从键盘输入3个字符串 (每个字符串以回车符做为结束标志),将3 个字符串以输入先后顺序合并到 字符串s中,请填空使用程序完整。 #include \ #include \ main() { char s[100]=\ char a[30]; gets(a); strcat(s, a); gets(a); strcat(s, a); gets(a); strcat(s, a); /*可以写多行代码*/ printf(\ } [自测数据] [键盘输入] 123 abc 456 [正确输出] 123abc456 [题目 1050:寻找字符串] 由键盘输入两个字符串(假设第一个字符串必包含第二个字符串,如第一个字符串为 ABCDEF,第 二个为CDE,则CDE 包含在ABCDEF中),现要求编程输出第二字符串在第一行字符串中出现的位置。 (如果第二个字符串在第一个字符串中出现多次,则以最前出现的为准) [第一组自测数据] [键盘输入] ABCDEFG↙ DE↙ [正确输出] 4 [第二组自测数据] [键盘输入] hellhello!↙ hello↙ [正确输出] 5 [提示]方法1:建立双重循环,外层循环变量指示第一个串的查找起始位置,内层循环从起始位置开始判 断第二个字符中是否出现在此处;方法2:使用字符串函数 strstr()。 参考程序: #include \ main() { int i,j; char a[80], b[80]; gets(a); gets(b); for(i=0;a[i]!='\\0';i++) { for(j=0;b[j]!='\\0';j++) if(a[i+j]!=b[j]) break; if(b[j]=='\\0') break; } if (a[i]!='\\0') printf(\ else printf(\ } 24 实验 9 函数的基本应用 一、实验目的 (1)掌握定义函数的方法。 (2)掌握函数实参与形参的对应关系,以及“值传递”的方式。 (3)掌握函数的嵌套调用和递归调用的方法。 (4)掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。 二、实验内容 [题目 1059:函数定义] 下面是使用辗转相除法,求最大公约数的程序,请补充完整程序中函数的定义与调用。 #include \ int f(int m, int n) { int r; while ((r=m%n)!=0) { m=n; n=r; } return n; } main() { int a, b, n; scanf(\ printf(\ f(a, b) ); } [题目 1083:编写函数计算阶乘]