5
夏学期C程序设计上机练习参考答案
相同的元素,如果找到,输出 x 在数组 a 中对应元素的最小下标,如果没有找到,输出相应信息。 输入输出示例:括号内为说明 输入: 2 6
1 3 5 7 9 5 5 4 1 3 5 7 2 输出: 5: a[2] 2: not found #include int main(void) { int flag, i, n, x; int repeat, ri; int a[10]; scanf(\ for(ri = 1; ri <= repeat; ri++){ flag=0; /* 若标志不重新初始化的
(x=2)
(x=5) (n=4)
(repeat=2) (n=6)
输入2个正整数 m 和 n (1<=m<=6, 1<=n<=6),然后输入矩阵 a(m 行 n 列)中的元素,分别求出各行元素之和,并输出。
输出使用语句:printf(\%d is %d\\n\i, sum); 输入输出示例:括号内为说明 输入: 3 2 6 3 1 -8 3 12 输出:
sum of row 0 is 9 sum of row 1 is -7 sum of row 2 is 15 #include int main(void) { int i, j, m, n, sum; int a[6][6];
(m=3,n=2)
scanf(\ for(i = 0; i < m; i++) for(j = 0; j < n; j++) scanf(\ flag = 1; break; }
70022 矩阵运算
程序填空,不要改变与输入输出有关的语句。
输入一个正整数 repeat (0读入 1 个正整数 n(1≤n≤6), 再读入 n 阶方阵 a , 计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。 输入输出示例:括号内为说明 输入:
1 (repeat=1)
for(i = 0; i < m; i++){ } sum=0; for(j = 0; j < n; j++) sum+=a[i][j]; 化,就会一影响下一轮循环的计算 */ scanf(\ for(i = 0; i < n; i++) scanf(\ scanf(\ for (i = 0; i < n; i++) { } if(x==a[i]) { } printf(\ if(flag != 0) printf( \ else printf( \ } }
70021 求矩阵各行元素之和
6
夏学期C程序设计上机练习参考答案
4 (n=4) 2 3 4 1 5 6 1 1 7 1 8 1 1 1 1 1
sum = 35 (2+3+4+5+6+7+8=35) #include \int main(void) { int i, j, n, sum; int repeat, ri; int a[6][6]; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ for(i = 0; i < n; i++) for(j = 0; j < n; j++) scanf(\ sum=0; for(i = 0; i < n; i++){ for(j = 0; j < n; j++) } sum+=a[i][j]; 提示:将乘数、被乘数和乘积放入一个二维数组中,再输出该数组。
输入输出示例:括号内为说明 输入:
1 (repeat=1) 3 (n=3) 输出:
* 1 2 3 1 1 2 2 4 3 3 6 9
/* 根据输出要求 将乘数存于a[0][j] 被乘数存于a[i][0]; 结果放在a[i][j], i,j不为0*/ #include \int main(void) { int i, j, n; int a[10][10]; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ for(j = 0; j <= n; j++) a[0][j]=j; /* 乘数 */ for(i = 1; i < n-1; i++) sum-=a[i][n-i-1]; /* 减去副对角线的元素 */ 行 */ 列 */ for(j =0; j 两次,补回一次 */ printf(\ } }
70023 九九乘法表
程序填空,不要改变与输入输出有关的语句。
输入一个正整数 repeat (0输入一个正整数 n(0 7
夏学期C程序设计上机练习参考答案
70024 判断上三角矩阵
输入一个正整数 repeat (0输入1 个正整数 n (1≤n≤6)和 n 阶方阵 a 中的元素,如果 a 是上三角矩阵, 输出\否则, 输出\。上三角矩阵指主对角线以下的元素都为0的矩阵, 主对角线为从矩阵的左上角至右下角的连线。 输入输出示例:括号内为说明 输入:
2 (repeat=2) 3 1 2 3 0 4 5 0 0 6 2 1 0 -8 2 输出: YES NO
#include \#include \int main(void) { int flag, i, j, n; int a[6][6]; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ for(i = 0; i < n; i++) for(j = 0; j < n; j++) scanf(\ flag=1; for(i = 0; i < n; i++){ for(j = 0; j < i; j++){ if(a[i][j]!=0){ flag=0; break; /* (n=2) (n=3)
} if(flag != 0) printf(\ else printf(\ } }
70025 算算看,这是第几天?
输入一个正整数 repeat (0输入日期(年、月、日),输出它是该年的第几天。 要求定义与调用函数 day_of_year(year, month, day),计算并返回year(年)、month(月)和day(日)对应的是该年的第几天,函数形参year、month和day的类型是int,函数类型也是int。
输入输出示例:括号内为说明 输入:
2 (repeat=2) 1981 3 1 (1981年3月1日) 2000 3 1 (2000年3月1日) 输出:
days of year: 60 (1981年3月1日是该年的第60天)
days of year: 61 (2000年3月1日是该年的第61天)
#include \int main(void) { int day, day_year, month, year; int repeat, ri; int day_of_year(int year, int month, int day); scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ day_year=day_of_year(year,month,day); printf(\ } } int day_of_year(int year, int month, int day) { int k,leap; int a[2][31]={ 只要一个数值不满足就可以否定 */ } if (!flag) break; } 8