1算法提示:分析一个10行的杨辉三角,需要一个10×10的二维矩阵a,则:
1) 杨辉三角为下三角矩阵,只需要求出第i行(i=0,1,2,..9)前i+1个元素,即a[i][j]!=0 (j=0...i).
2) 每行的第0列元素均为1,即a[i][0]=1;
3) 每行的主对角线元素也均为1,即a[i][i]=1;
4) 从第2行开始,每行夹在第0列元素与主对角线元素之间的元素a[i][j]( i=2,3,..9, j=1,..i-1 ) 等于其左上方元素a[i-1][j-1]与正上方元素a[i-1][j]之和,即a[i][j]=a[i-1][j-1]+a[i-1][j];
5) 输出该矩阵的下三角,即得出杨辉三角的前10行。
源程序:#include<>
void main()
int i, j, int a[10][10];
for(i=0; i<10; i各行的第0列元素与主对角线元素赋1
a[i][0a[i][i] =1;
for( i=2; i<10; i为第2~9行的夹在第0列与主对角线之间的元素赋值。
for(j=1;j< i ;j++)
a[i][j]= a[i-1][j-1]+a[i-1][j
for(i=0; i<10; i输出矩阵中的下三角矩阵。
for(j=0; j <=i ; j++)
printf("%5d", a[i][j]);
printf("");line 12
问: 如果删除line 12,程序运行结果有何不同?
答: 所有数字都没有换行。
实验题3】程序改错:输入一个以回车结束的字符串(有效长度少于80),将其中的小写字母统一更换成对应的大写字母。
提示:三项任务:1、输入字符串,并存储在字符数组中;
2、遍历字符串的每个元素,如果是小写字母('a'97~'z'122),则更换成大写字母。
3、输出更新后的字符串。
源程序:#include<>
void main()
int i;
char s[80];
i=0;while( (s[i] =getchar())n' )i输入字符串,以回车结束。记住这个写法。
s[i]= 0输入字符串结束符号。
for( i=0; s[i]!=0' ;i将遍历字符串,将小写字母转换成大写字母。
if( s[i]>=a'&&s[i]<=z')
s[i]= s[i] -32
for( i=0; s[i]!=0'; i++
printf("%c",s[i输出字符串,每次输出一个字符。
printf("");
运行程序,输入:tom&jack-s10
输出结果: tom&jack-s10
实验题4】程序填空:输入一个以回车结束的字符串(有效长度少于80),将该字符串中的字符重新排列,使原先第0个字符出现在最后一位,原先第1个字符出现在倒数第2位,。。原先最后1个字符出现在第0位,例如:
字符串"abcdef"经重排后变成"fedcba"。
算法分析: 该问题类似于方阵转置,即把特定位置的数组元素进行交换。本题中的字符串存放在一维字符型数组s中,需要解决以下问题:
1) 计算字符串s的有效长度len
2) 将字符串s的前半部分(0~len/2-1)与字符串的后半部分对调,即交换对称元素,与s[i]对称的元素是s[len-1-i],如下图所示:
abcdef
len=6
源程序:#include <>
#include <>
void main()
int i, len=0;
char s[80],temp;
printf("input a string(<80):");
gets(s调用字符串输入函数gets(),输入字符串到s
len = strlen(s统计字符串有效长度len
for( i=0; i< len/2 ; i++)
puts(s调用字符串输出函数puts, 输出处理后的字符串s
选做题。实验题5】
1) 利用公式,
编写一个计算pi的近似值程序,当最后一项小于10-5时为计算终止条件。
源**粘贴处。
#include <>
int main()
int i;
double t=1.0,sum = 1.0;
//t用来表示出每一项1/3*2/5...i=1时t=1/3;i=2时t=1/3*2/5...
//sum是一个累加器。
for(i = 1; t > 1e-5; i++)
printf("%f",sum);
return 0;
(2) 求所有四位数中的可逆素数个数。可逆素数指:一个素数将其各位数字的顺序倒过来构成的反序数也是素数。
本题答案应该是204个。
源**粘贴处。
#include <>
int main()
int g,s,b,q,i,num,r_num,sum=0;//g,s,b,q分别表示个、十、百、千位。
for(num = 1000; num < 10000; num++
printf("%d",sum);
return 0;
上机实验七 二维数组字符数组答案
1算法提示 分析一个10行的杨辉三角,需要一个10 10的二维矩阵a,则 1 杨辉三角为下三角矩阵,只需要求出第i行 i 0,1,2,9 前i 1个元素,即a i j 0 j 0.i 2 每行的第0列元素均为1,即a i 0 1 3 每行的主对角线元素也均为1,即a i i 1 4 从第2行开始,每...
上机实验六一维数组 答案
班级学号姓名 本次题目一共5题,必做4个,选做1个。选做题可能有点难度,请尝试着做一下,能做出来说明目前你已经很强了!一 目的要求。1 掌握一维数组的基本概念,定义和初始化方法 2 掌握一维数组的基本操作,如输入 输出 引用数组元素 3 掌握与数组有关的基本算法,如寻找最大 最小值 排序等。二 实验...
上机实验六一维数组 答案
班级学号姓名 本次题目一共5题,必做4个,选做1个。选做题可能有点难度,请尝试着做一下,能做出来说明目前你已经很强了!一 目的要求。1 掌握一维数组的基本概念,定义和初始化方法 2 掌握一维数组的基本操作,如输入 输出 引用数组元素 3 掌握与数组有关的基本算法,如寻找最大 最小值 排序等。二 实验...