1、 printf(enter data:n);for (i=1;=10; printf(a%d=,i); scanf(%d,&ai); printf(The orginal numbers: printf(,ai);=9; min=i; if (aminaj) min=j; temp=ai; ai=amin; amin=temp;The sorted numbers:3、 求一个33的整型矩阵对角线元素之和。 int a33,sum=0;int i,j; for (i=0;3; for (j=0; scanf(=,&aij); sum=sum+aii;printf(sum=mn,sum);4、
2、有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。 int a11=1,4,6,9,13,16,19,28,40,100; int temp1,temp2,number,end,i,j; printf(array a:10; printf(insert data:number); end=a9; if (numberend) a10=number; else for (i=0;i+) if (ainumber) temp1=ai; ai=number;11; temp2=aj; aj=temp1; temp1=temp2; break; printf(Now array
3、a:printf(5、 将一个数组中的值按逆序重新存放。例如,原来顺序为8、6、5、4、1。要求改为1、4、5、6、8。解:#include stdio.h #define N 5 void main() int aN,i,temp; printf(enter arry a: for(i=0;N; printf(arry a: printf(M,ai);N/2; temp=ai; ai=aN-i-1; aN-i-1=temp;Now,arry a:6、 输出以下的杨辉三角形(要求输出10行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 int i,
4、j,n=0,a3131=0; while(n30) /*最多可输出30行*/ 灻楲瑮?请输入杨辉三角形的行数:n);n; ai0=1; /*第一列全置为一*/ for(i=1; for(j=1;=i; aij=ai-1j-1+ai-1j; /*每个数是上面两数之和*/ i+) /*输出杨辉三角*/ for(j=0; printf(,aij);7、 输出“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为 8 1 6 3 5 7 4 9 2 int a1515,i,j,k,p,n; p=1; while(p=1) printf(enter n(n=1-1
5、5): if (n!=0) & (n=15) & (n%2!=0) p=0;=n; for (j=1; aij=0; j=n/2+1; a1j=1; for (k=2;k=n*n;k+) i=i-1; j=j+1; if (in) i=i+2; j=j-1; if (in) j=1; if (aij=0) aij=k; for (j=1;8、 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。#define N 4 #define M 5 /* 数组为4行5列 */ int i,j,k,aNM,max,maxj,flag; printf(please inp
6、ut matrix:i+) /* 输入数组 */ M; max=ai0; /* 开始时假设ai0最大 */ maxj=0; /* 将列号0赋给maxj保存 */ j+) /* 找出第i行中的最大数 */ if (aijmax) max=aij; /* 将本行的最大数存放在max中 */ maxj=j; /* 将最大数所在的列号存放在maxj中 */ flag=1; /* 先假设是鞍点,以flag为1代表 */ for (k=0; if (maxakmaxj) /* 将最大数和其同列元素相比 */ flag=0; /* 如果max不是同列最小,表示不是鞍点令flag1为0 */ continue
7、; if(flag) /* 如果flag1为1表示是鞍点 */ printf(a%d%d=%dn,i,maxj,max); /* 输出鞍点的值和所在行列号 */ if(!flag) /* 如果flag为0表示鞍点不存在 */ printf(It is not exist!9、 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。#define N 15 int i,number,top,bott,mid,loca,aN,flag=1,sign; char c;a0); i=1; while(i=ai-1)
8、i+; printf(enter this data again: while(flag) printf(input number to look for: sign=0; top=0; /top是查找区间的起始位置 bott=N-1; /bott是查找区间的最末位置 if (numberaN-1) /要查的数不在查找区间内 loca=-1; / 表示找不到 while (!sign) & (top=bott) mid=(bott+top)/2; if (number=amid) loca=mid; printf(Has found %d, its position is %dn,number
9、,loca+1); sign=1; else if (number=Atextijaz low+;09 dig+; else if (textij= spa+; oth+;upper case:%dn,upp); printf(lower case:%dn,low); printf(digit :%dn,dig); printf(space :%dn,spa); printf(other :%dn,oth);11、 输出以下图案:* * * * * * * * * * char a5=*,;int i,j,k; char space=5; printf( printf( ); printf(%
10、c,space); printf(%c,ak);12、 有一行电文,已按下面规律译成密码:A Z a z B Y b y C X c x . . . . . . 即第1个字母变成第26个字母,第i个字母变成第(26i+1)个字母,非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。(1) int j,n; char ch80,tran80; printf(input cipher code: gets(ch);cipher code :%s,ch); j=0; while (chj!0 if (chj) & (chj tranj=219-chj;else tranj=chj; j+;
11、n=j;original text: putchar(tranj);(2) int j,n; char ch80;cipher code:%sn,ch); chj=155-chj; chj=219-chj; chj=chj; printf(original text: putchar(chj);13、 编一程序,将两个字符串连接起来,不要用strcat函数。 char s180,s240; int i=0,j=0; printf(input string1: scanf(%s,s1); printf(input string2: scanf(%s,s2); while (s1i! i+; wh
12、ile(s2j! s1i+=s2j+; s1i=The new string is:%sn,s1);14、 编一个程序,将两个字符串s1和s2比较,若s1s2,输出一个正数;若s1=s2,输出0;若s1s2,输出一个负数。不要用strcpy函数。两个字符串用gets函数读入。输出的正数或负数的绝对值应是相比较的两个字符串相应的ASCII码的差值。例如,“A”与“C”相比,由于“A”“C”,应输出负数,同时由于A和C的ASCII码差值为2,因此应输出“-2”。同理:“And”“Aid”比较,根据第2个字符比较结果,“n”比“i”大5,因此应输出“5”。 int i,resu; char s110
13、0,s2100; gets(s1);input string2: gets(s2); i=0;while (s1i=s2i) & (s1i!)i+; if (s1i= & s2i= resu=0; resu=s1i-s2i;result:%d.n,resu);15、 编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中。不用strcpy函数。复制时,/0后面的字符不复制。#includemain() int i; char str1100,str2100; printf(input string 2: scanf(%s,str2);=strlen(str2); str1i=str2i; printf(str1:%sn,str1);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1