作者在 2011-11-07 15:10:31 发布以下内容
6.1. 用筛选法求100之内的素数
/*
时间:2011年10月31日16:22:34
题目:习题6.1 用筛选法求100之内的素数
备注:筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。又称埃拉托斯特尼筛子。
参考:http://baike.baidu.com/view/2722688.htm
*/
# include <stdio.h>
int main()
{
int a[100];
int i,j,k;
for(i=0; i<100; ++i) //建立数组,将1到100的自然数写入
{
a[i]=i+1;
}
a[0]=0; //去掉自然数1
for(i=1; i<100; ++i) //最外层从2到99循环
{
if(a[i]!=0) //从2开始第一个没被去掉的数是素数
{
printf("%d ",a[i]); //把质数输出出来
for(j=1; j<100; j++) //嵌套循环,a[1]到a[99]中等于素数倍数的数去除(改为0)
{
for(k=2; k<=100/a[i]; ++k)
{
if(a[j]==a[i]*k)
{
a[j]=0;
}
}
}
}
}
printf("\n");
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Press any key to continue
————————————
*/
时间:2011年10月31日16:22:34
题目:习题6.1 用筛选法求100之内的素数
备注:筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。又称埃拉托斯特尼筛子。
参考:http://baike.baidu.com/view/2722688.htm
*/
# include <stdio.h>
int main()
{
int a[100];
int i,j,k;
for(i=0; i<100; ++i) //建立数组,将1到100的自然数写入
{
a[i]=i+1;
}
a[0]=0; //去掉自然数1
for(i=1; i<100; ++i) //最外层从2到99循环
{
if(a[i]!=0) //从2开始第一个没被去掉的数是素数
{
printf("%d ",a[i]); //把质数输出出来
for(j=1; j<100; j++) //嵌套循环,a[1]到a[99]中等于素数倍数的数去除(改为0)
{
for(k=2; k<=100/a[i]; ++k)
{
if(a[j]==a[i]*k)
{
a[j]=0;
}
}
}
}
}
printf("\n");
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Press any key to continue
————————————
*/
6.2 用选择法对10个整数排序
/*
时间:2011年11月1日14:10:42
题目:习题6.2 用选择法对10个整数排序
*/
# include <stdio.h>
int main()
{
int i,j;
int a[10];
int temp;
printf("输入10个数:\n");
for(i=0; i<10; ++i)
{
scanf("%d",a+i);
}
for(i=0; i<9; ++i) //分别选取从a[0]到a[9]与其之后的元素比较大小
{
for(j=i+1; j<10; ++j) //把小的改放在前面
{
if (a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("由小到大排序:\n");
for(i=0; i<10; ++i)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入10个数:
1 3 5 7 9 2 4 6 8 10
由小到大排序:
1 2 3 4 5 6 7 8 9 10
Press any key to continue
————————————
*/
时间:2011年11月1日14:10:42
题目:习题6.2 用选择法对10个整数排序
*/
# include <stdio.h>
int main()
{
int i,j;
int a[10];
int temp;
printf("输入10个数:\n");
for(i=0; i<10; ++i)
{
scanf("%d",a+i);
}
for(i=0; i<9; ++i) //分别选取从a[0]到a[9]与其之后的元素比较大小
{
for(j=i+1; j<10; ++j) //把小的改放在前面
{
if (a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("由小到大排序:\n");
for(i=0; i<10; ++i)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入10个数:
1 3 5 7 9 2 4 6 8 10
由小到大排序:
1 2 3 4 5 6 7 8 9 10
Press any key to continue
————————————
*/
6.3 求一个3x3整型矩阵,对角线元素的和
/*
时间:2011年11月1日14:38:48
题目:习题6.3 求一个3x3整型矩阵,对角线元素的和
*/
# include <stdio.h>
# include <malloc.h>
int main()
{
int n=3;
int len;
int i,j;
int * pArr;
int sum1=0,sum2=0;
len = n*n;
pArr = (int *)malloc(sizeof(int)*len);
printf("输入%dx%d矩阵元素:\n",n,n);
for(i=0; i<len; ++i)
{
scanf("%d",&pArr[i]);
}
for(j=1; j<=n; ++j)
{
sum1 += *(pArr+(n+1)*(j-1));
sum2 += *(pArr+(n-1)*j);
}
printf("\\方向对角线的元素和=%d\n",sum1);
printf("\/方向对角线的元素和=%d\n",sum2);
free(pArr);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入3x3矩阵元素:
1 3 5
2 4 6
7 8 9
\方向对角线的元素和=14
/方向对角线的元素和=16
Press any key to continue
————————————
*/
时间:2011年11月1日14:38:48
题目:习题6.3 求一个3x3整型矩阵,对角线元素的和
*/
# include <stdio.h>
# include <malloc.h>
int main()
{
int n=3;
int len;
int i,j;
int * pArr;
int sum1=0,sum2=0;
len = n*n;
pArr = (int *)malloc(sizeof(int)*len);
printf("输入%dx%d矩阵元素:\n",n,n);
for(i=0; i<len; ++i)
{
scanf("%d",&pArr[i]);
}
for(j=1; j<=n; ++j)
{
sum1 += *(pArr+(n+1)*(j-1));
sum2 += *(pArr+(n-1)*j);
}
printf("\\方向对角线的元素和=%d\n",sum1);
printf("\/方向对角线的元素和=%d\n",sum2);
free(pArr);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入3x3矩阵元素:
1 3 5
2 4 6
7 8 9
\方向对角线的元素和=14
/方向对角线的元素和=16
Press any key to continue
————————————
*/
6.4 有一个已排好序的数组,要求输入一个数后,按原来排序的顺序把它插入数组中
/*
时间:2011年11月7日15:06:45
题目:习题6.4 有一个已排好序的数组,要求输入一个数后,按原来排序的顺序把它插入数组中
备注:暂时只练习由小到大排列的情况
*/
# include <stdio.h>
# define N 5
int main()
{
int a[N]={1,3,5,7,9};
int b[N+1];
int i;
printf("原来已排好序的数组为:\n");
for(i=0; i<N; ++i)
{
printf("%d ",a[i]);
}
printf("\n");
printf("输入要插入的数:\n");
scanf("%d",&b[N]);
for(i=0; i<N; ++i)
{
if(a[i]<=b[N])
{
b[i]=a[i];
}
else
{
b[i]=b[N];
b[N]=a[i];
}
}
printf("新的数组为:\n");
for(i=0; i<=N; ++i)
{
printf("%d ",b[i]);
}
printf("\n");
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
原来已排好序的数组为:
1 3 5 7 9
输入要插入的数:
4
新的数组为:
1 3 4 5 7 9
Press any key to continue
————————————
*/
时间:2011年11月7日15:06:45
题目:习题6.4 有一个已排好序的数组,要求输入一个数后,按原来排序的顺序把它插入数组中
备注:暂时只练习由小到大排列的情况
*/
# include <stdio.h>
# define N 5
int main()
{
int a[N]={1,3,5,7,9};
int b[N+1];
int i;
printf("原来已排好序的数组为:\n");
for(i=0; i<N; ++i)
{
printf("%d ",a[i]);
}
printf("\n");
printf("输入要插入的数:\n");
scanf("%d",&b[N]);
for(i=0; i<N; ++i)
{
if(a[i]<=b[N])
{
b[i]=a[i];
}
else
{
b[i]=b[N];
b[N]=a[i];
}
}
printf("新的数组为:\n");
for(i=0; i<=N; ++i)
{
printf("%d ",b[i]);
}
printf("\n");
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
原来已排好序的数组为:
1 3 5 7 9
输入要插入的数:
4
新的数组为:
1 3 4 5 7 9
Press any key to continue
————————————
*/
6.5 将一个数组中的值按逆序重新存放,例如,原来顺序是8、6、5、4、1,。要求改为1、4、5、6、8
/*
时间:2011年11月3日10:17:20
题目:将一个数组中的值按逆序重新存放,例如,原来顺序是8、6、5、4、1,。要求改为1、4、5、6、8
*/
# include <stdio.h>
# include <malloc.h>
int main()
{
int temp;
int* pArr;
int len = 1;
char ch;
int n = 0;
pArr = (int *)malloc(sizeof(int)*len);
printf("输入数组中的元素,按回车结束:\n");
scanf("%d",pArr+n);
while(ch=getchar()!='\n')
{
++ n;
++len;
pArr = (int *)realloc(pArr,sizeof(int)*len);
scanf("%d",pArr+n);
}
for(n=0; n<len/2; ++n)
{
temp = *(pArr+n);
*(pArr+n) = *(pArr+(len-1-n));
*(pArr+(len-1-n)) = temp;
}
printf("按逆序输出:\n");
for(n=0; n<len; ++n)
{
printf("%d ",*(pArr+n));
}
printf("\n");
free(pArr);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入数组中的元素,按回车结束:
8 6 5 4 1
按逆序输出:
1 4 5 6 8
Press any key to continue
————————————
*/
时间:2011年11月3日10:17:20
题目:将一个数组中的值按逆序重新存放,例如,原来顺序是8、6、5、4、1,。要求改为1、4、5、6、8
*/
# include <stdio.h>
# include <malloc.h>
int main()
{
int temp;
int* pArr;
int len = 1;
char ch;
int n = 0;
pArr = (int *)malloc(sizeof(int)*len);
printf("输入数组中的元素,按回车结束:\n");
scanf("%d",pArr+n);
while(ch=getchar()!='\n')
{
++ n;
++len;
pArr = (int *)realloc(pArr,sizeof(int)*len);
scanf("%d",pArr+n);
}
for(n=0; n<len/2; ++n)
{
temp = *(pArr+n);
*(pArr+n) = *(pArr+(len-1-n));
*(pArr+(len-1-n)) = temp;
}
printf("按逆序输出:\n");
for(n=0; n<len; ++n)
{
printf("%d ",*(pArr+n));
}
printf("\n");
free(pArr);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入数组中的元素,按回车结束:
8 6 5 4 1
按逆序输出:
1 4 5 6 8
Press any key to continue
————————————
*/
6.6 输出杨辉三角形,要求输出10行
/*
时间:2011年11月3日10:51:21
题目:习题6.6 输出杨辉三角形
要求:输出10行
*/
# include <stdio.h>
# define N 10
int main()
{
int i,j;
int a[N][N]={0};
for(i=0; i<N; ++i)
{
for(j=0; j<N; ++j)
{
if(0==j)
{
a[i][j]=1;
}
else if(i>0)
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
if(0!=a[i][j])
{
printf("%-4d",a[i][j]);
}
}
printf("\n");
}
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
Press any key to continue
————————————
*/
时间:2011年11月3日10:51:21
题目:习题6.6 输出杨辉三角形
要求:输出10行
*/
# include <stdio.h>
# define N 10
int main()
{
int i,j;
int a[N][N]={0};
for(i=0; i<N; ++i)
{
for(j=0; j<N; ++j)
{
if(0==j)
{
a[i][j]=1;
}
else if(i>0)
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
if(0!=a[i][j])
{
printf("%-4d",a[i][j]);
}
}
printf("\n");
}
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
Press any key to continue
————————————
*/
6.7 输出魔方矩阵,要求输出1~n^2的自然数构成的魔方阵
/*
时间:2011年11月3日13:38:16
题目:输出魔方矩阵
备注:暂时只练习编写奇数阶数的
参考:http://baike.baidu.com/view/1905316.htm
*/
# include <stdio.h>
# define N 3
int main()
{
int i,j;
int it,jt;
int a[N][N]={0};
int n=1;
i=0;
j=N/2;
a[i][j]=n; //把1填入第一行中间一列的位置
while(n<N*N)
{
++n;
if(0==i) //找到行数减1,列数+1的位置,如果越界则回绕
{
it=N-1;
}
else
{
it=i-1;
}
if(N-1==j)
{
jt=0;
}
else
{
jt=j+1;
}
if(0==a[it][jt]) //找到的位置如果没有填过数,就把下一个数填进去
{
i=it;
j=jt;
}
else //找到的位置如果填过数了,就把下一个数填在上一个数的下面(行数+1)
{
if(N-1==i)
{
i=0;
}
else
{
++i;
}
}
a[i][j]=n;
}
for (i=0; i<N; ++i) //输出矩阵
{
for (j=0; j<N; ++j)
{
printf("%-3d ",a[i][j]);
}
printf("\n");
}
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
8 1 6
3 5 7
4 9 2
Press any key to continue
————————————
*/
时间:2011年11月3日13:38:16
题目:输出魔方矩阵
备注:暂时只练习编写奇数阶数的
参考:http://baike.baidu.com/view/1905316.htm
*/
# include <stdio.h>
# define N 3
int main()
{
int i,j;
int it,jt;
int a[N][N]={0};
int n=1;
i=0;
j=N/2;
a[i][j]=n; //把1填入第一行中间一列的位置
while(n<N*N)
{
++n;
if(0==i) //找到行数减1,列数+1的位置,如果越界则回绕
{
it=N-1;
}
else
{
it=i-1;
}
if(N-1==j)
{
jt=0;
}
else
{
jt=j+1;
}
if(0==a[it][jt]) //找到的位置如果没有填过数,就把下一个数填进去
{
i=it;
j=jt;
}
else //找到的位置如果填过数了,就把下一个数填在上一个数的下面(行数+1)
{
if(N-1==i)
{
i=0;
}
else
{
++i;
}
}
a[i][j]=n;
}
for (i=0; i<N; ++i) //输出矩阵
{
for (j=0; j<N; ++j)
{
printf("%-3d ",a[i][j]);
}
printf("\n");
}
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
8 1 6
3 5 7
4 9 2
Press any key to continue
————————————
*/
6.8 找出一个二维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。
/*
时间:2011年11月3日14:43:57
题目:习题6.8 找出一个二维数组的鞍点
备注:鞍点即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。
*/
# include <stdio.h>
# define LINE 4
# define COLUMN 5
int main()
{
int i,j,k;
int a[LINE][COLUMN];
int temp;
int line,column;
printf("输入%d行%d列矩阵的元素:\n",LINE,COLUMN);
for(i=0; i<LINE; ++i)
{
for(j=0; j<COLUMN; ++j)
{
scanf("%d",&a[i][j]);
}
}
for(j=0; j<COLUMN; ++j)
{
temp = a[0][j];
for(i=0; i<LINE; ++i)
{
if(a[i][j]<=temp)
{
temp = a[i][j];
line = i;
column = j;
}
}
for(k=0; k<COLUMN; ++k)
{
if(temp < a[line][k])
{
break;
}
}
if(k==COLUMN)
{
printf("找到鞍点a[%d][%d]=%d\n",line,column,a[line][column]);
break;
}
}
if(j==COLUMN)
{
printf("找不到鞍点\n");
}
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入4行5列矩阵的元素:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
找到鞍点a[0][4]=5
Press any key to continue
----------------------------
输入4行5列矩阵的元素:
1 2 3 4 11
2 4 6 8 12
3 6 9 10 15
4 8 12 16 7
找不到鞍点
Press any key to continue
————————————
*/
时间:2011年11月3日14:43:57
题目:习题6.8 找出一个二维数组的鞍点
备注:鞍点即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。
*/
# include <stdio.h>
# define LINE 4
# define COLUMN 5
int main()
{
int i,j,k;
int a[LINE][COLUMN];
int temp;
int line,column;
printf("输入%d行%d列矩阵的元素:\n",LINE,COLUMN);
for(i=0; i<LINE; ++i)
{
for(j=0; j<COLUMN; ++j)
{
scanf("%d",&a[i][j]);
}
}
for(j=0; j<COLUMN; ++j)
{
temp = a[0][j];
for(i=0; i<LINE; ++i)
{
if(a[i][j]<=temp)
{
temp = a[i][j];
line = i;
column = j;
}
}
for(k=0; k<COLUMN; ++k)
{
if(temp < a[line][k])
{
break;
}
}
if(k==COLUMN)
{
printf("找到鞍点a[%d][%d]=%d\n",line,column,a[line][column]);
break;
}
}
if(j==COLUMN)
{
printf("找不到鞍点\n");
}
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入4行5列矩阵的元素:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
找到鞍点a[0][4]=5
Press any key to continue
----------------------------
输入4行5列矩阵的元素:
1 2 3 4 11
2 4 6 8 12
3 6 9 10 15
4 8 12 16 7
找不到鞍点
Press any key to continue
————————————
*/
6.9 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中的第几个元素的值。如果该数不在数组中,则输出“无此数”
/*
时间:2011年11月3日15:38:23
题目:习题6.9 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中的第几个元素的值。如果该数不在数组中,则输出"无此数"
*/
# include <stdio.h>
# define N 15
int main()
{
int a[N]={29,27,25,23,21,19,17,15,13,11,9,7,5,3,1};
int number;
int min,max,n;
printf("输入要查找的数: ");
scanf("%d",&number);
min=0;
max=N;
while(1)
{
n = (min+max)/2;
if(number==a[n])
{
printf("该数是数组的第%d个元素\n",n+1);
break;
}
else
{
if(max-min<=1)
{
printf("无此数\n");
break;
}
else
{
if(number<a[n])
{
min=n;
}
else
{
max=n;
}
}
}
}
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入要查找的数: 3
该数是数组的第14个元素
Press any key to continue
------------------------
输入要查找的数: 2
无此数
Press any key to continue
————————————
*/
时间:2011年11月3日15:38:23
题目:习题6.9 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中的第几个元素的值。如果该数不在数组中,则输出"无此数"
*/
# include <stdio.h>
# define N 15
int main()
{
int a[N]={29,27,25,23,21,19,17,15,13,11,9,7,5,3,1};
int number;
int min,max,n;
printf("输入要查找的数: ");
scanf("%d",&number);
min=0;
max=N;
while(1)
{
n = (min+max)/2;
if(number==a[n])
{
printf("该数是数组的第%d个元素\n",n+1);
break;
}
else
{
if(max-min<=1)
{
printf("无此数\n");
break;
}
else
{
if(number<a[n])
{
min=n;
}
else
{
max=n;
}
}
}
}
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入要查找的数: 3
该数是数组的第14个元素
Press any key to continue
------------------------
输入要查找的数: 2
无此数
Press any key to continue
————————————
*/
6.10有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数
/*
时间:2011年11月4日14:47:30
题目:习题6.10 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数
*/
# include <stdio.h>
# include <ctype.h>
# define LINE 3
# define COLUMN 80
int main()
{
int i,j;
char a[LINE][COLUMN];
int space=0;
int digit=0;
int alpha=0;
int other=0;
for(i=0; i<LINE; ++i)
{
printf("输入第%d行的内容:\n",i+1);
for(j=0; j<COLUMN; ++j)
{
if ((a[i][j]=getchar()) !='\n')
{
if(isalpha(a[i][j]))
{
++alpha;
}
else if(isdigit(a[i][j]))
{
++digit;
}
else if(isspace(a[i][j]))
{
++space;
}
else
{
++other;
}
}
else
{
break;
}
}
}
printf("%d行文字共包含有:\n",LINE);
printf("\t\t空格%d个\n",space);
printf("\t\t数字%d个\n",digit);
printf("\t\t字母%d个\n",alpha);
printf("\t\t其他字符%d个\n",other);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入第1行的内容:
pi=3.14159
输入第2行的内容:
1+2=3 is right
输入第3行的内容:
bbs.bccn.net
3行文字共包含有:
空格2个
数字9个
字母19个
其他字符6个
Press any key to continue
————————————
*/
时间:2011年11月4日14:47:30
题目:习题6.10 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数
*/
# include <stdio.h>
# include <ctype.h>
# define LINE 3
# define COLUMN 80
int main()
{
int i,j;
char a[LINE][COLUMN];
int space=0;
int digit=0;
int alpha=0;
int other=0;
for(i=0; i<LINE; ++i)
{
printf("输入第%d行的内容:\n",i+1);
for(j=0; j<COLUMN; ++j)
{
if ((a[i][j]=getchar()) !='\n')
{
if(isalpha(a[i][j]))
{
++alpha;
}
else if(isdigit(a[i][j]))
{
++digit;
}
else if(isspace(a[i][j]))
{
++space;
}
else
{
++other;
}
}
else
{
break;
}
}
}
printf("%d行文字共包含有:\n",LINE);
printf("\t\t空格%d个\n",space);
printf("\t\t数字%d个\n",digit);
printf("\t\t字母%d个\n",alpha);
printf("\t\t其他字符%d个\n",other);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入第1行的内容:
pi=3.14159
输入第2行的内容:
1+2=3 is right
输入第3行的内容:
bbs.bccn.net
3行文字共包含有:
空格2个
数字9个
字母19个
其他字符6个
Press any key to continue
————————————
*/
6.11 输出图案
/*
时间:2011年11月4日15:20:37
题目:习题6.11 输出图案
*/
# include <stdio.h>
# define N 5
int main()
{
int i,j,k;
for(j=0; j<N; ++j)
{
for(k=0; k<2*j; ++k)
{
printf(" ");
}
for(i=0; i<N; ++i)
{
printf("* ");
}
printf("\n");
}
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Press any key to continue
————————————
*/
时间:2011年11月4日15:20:37
题目:习题6.11 输出图案
*/
# include <stdio.h>
# define N 5
int main()
{
int i,j,k;
for(j=0; j<N; ++j)
{
for(k=0; k<2*j; ++k)
{
printf(" ");
}
for(i=0; i<N; ++i)
{
printf("* ");
}
printf("\n");
}
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Press any key to continue
————————————
*/
6.12 有一行电文,已按下面规律译成密码。即第一个字母变成第26个字母,第i个字母变成(26-i+1)个字母,非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。
/*
时间:2011年11月4日17:12:56
题目:习题6.12 要求编程序将密码译回原文
*/
# include <stdio.h>
# include <malloc.h>
int main()
{
char ch;
i
时间:2011年11月4日17:12:56
题目:习题6.12 要求编程序将密码译回原文
*/
# include <stdio.h>
# include <malloc.h>
int main()
{
char ch;
i
文章评论,共5条
<div class="quote"><span class="q"><b>wordless</b>: 想知道你的6.14能比较 A 和 c 的大小的吗?</span></div>输入第1个字符串:<br />
A<br />
输入第2个字符串:<br />
c<br />
result=-34<br />
Press any key to continue
A<br />
输入第2个字符串:<br />
c<br />
result=-34<br />
Press any key to continue
<div class="quote"><span class="q"><b>wordless</b>: 两个字符串用gets函数输入。输出的正数或负数的绝对值应是相比较的两个字符中相应字符的ASCII码的差值,例如,“A”与“c”相比,由于“A”<“C”.应输出负</span></div>哦,呵呵,抱歉抱歉,题目输入错了,应该是大写的C,谢谢指正<img src="image/face/2.gif" class="face">