{
unsigned int i; for(i = 1;i <= n; i++) {
printf(\ } } main() {
unsigned int i;
printf(\ scanf(\ Fact(i); }
---------------------------25 26.
爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,则最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。参考例6.15程序,编写计算这条阶梯共有多少阶的程序如下所示,其中存在一些语法和逻辑错误,请找出并改正之,然后上机运行程序并写出程序的运行结果。
#include
int x = 1, find = 0; while (!find); {
if (x%2=1 && x%3=2 && x%5=4 && x%6=5 && x%7=0) {
printf(\ find = 1;
x++; } } } 答案:
#include
{ int x = 1, find = 0; while (!find) {
if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0) {
printf(\ find = 1; } x++; } }
---------------26 27.
从键盘任意输入一个正整数,编程判断它的奇偶性。要求输入变量定义为int类型且由用户从键盘输入。
程序的运行示例1: Input an integer number: 4↙
4 is an even number
程序的运行示例2: Input an integer number: 3↙
3 is an odd number
输入格式: \
输出格式:
输入信息提示:\偶数输出格式:\奇数输出格式:\答案:
#include
-------------------------------------27 28.
int n, m;
printf(\scanf(\m = n % 2; if (m)
printf(\printf(\else
用动态数组编程输入任意m个班学生(每班n个学生)的某门课的成绩,计算最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。其中,m和n的值由用户从键盘任意输入(不限定m和n的上限值)。 输入提示信息:
\\输入格式:\
输出提示信息和格式:\答案:
#include
void InputScore(int *p, int m, int n);
int FindMax(int *p, int m, int n, int *pRow, int *pCol); int main() {
int *pScore, m, n, maxScore, row, col; printf(\ scanf(\
pScore = (int *)calloc(m * n, sizeof (int)); /* 申请动态内存 */ if (pScore == NULL) {
printf(\ exit(0); }
InputScore(pScore, m, n);
maxScore = FindMax(pScore, m, n, &row, &col);
printf(\ free(pScore); /* 释放动态内存 */ return 0; }
/* 函数功能:输入m行n列二维数组的值 */ void InputScore(int *p, int m, int n) { int i, j;
printf(\ for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
scanf(\ } }
}
/* 函数功能:计算任意m行n列二维数组中元素的最大值,并指出其所在行列下标值 */
int FindMax(int *p, int m, int n, int *pRow, int *pCol) {
int i, j, max = p[0]; *pRow = 0; *pCol = 0;
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
if (p[i * n + j] > max) { max = p[i * n + j];
*pRow = i; /*记录行下标*/ *pCol = j; /*记录列下标*/ } } }
return max; }
-----------------------------28 29.
下面程序的功能是交换变量a和b中的值。 找出其中的错误并改正之。
#include
int a,b,*p,*q,*t; p=&a; q=&b;
printf(\请输入变量a和b的值:\ scanf(\ *t=*p ; *p=*q ; *q=*t ;
printf(\交换后a和b的值:a=%d b=%d\\n\} 答案:
#include
int a,b,*p,*q,*t; p=&a; q=&b;