错题总结(四)

1.【一维数组】输入10个整数,求平均值

编写一个程序,从用户输入中读取10个整数并存储在一个数组中。然后,计算并输出这些整数的平均值。

int main()
{
	int arr[10];
	int sum = 0;
	for (int n = 0; n < 10; n++)
	{
		scanf("%d", &arr[n]);
		sum = sum + arr[n];
	}
	double m = (double)sum / 10;
	printf("%f\n", m);
	return 0;
}

其中需要注意的是,平均值的计算至少要等数据获取到之后,才能开始计算呢,不能先计算然后才开始获取数据,因此,m不能在最开始的时候计算,要在for循环之后

2.X型图案

错题总结(四)_第1张图片

错题总结(四)_第2张图片

分析:(0,0)(0,4)(1,1)(1,3)(2,2)(3,1)(3,3)(4,0)(4,4)

            i== j      i + j = 4 =n -1

int main() {
    int n;
    while (scanf("%d", &n) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 
        for(int i = 0; i < n; i ++)
        {
            for(int j = 0; j < n; j ++)
        {
            if(i == j || (i + j) == n-1)
            {
            printf("*");
            }
        else
        printf(" ");
        }
        printf("\n");
        }
    }
    return 0;
}

3.

错题总结(四)_第3张图片

错题总结(四)_第4张图片

分析:

(0,0)(0,1)(0,2)(0,3)(1,0)(1,3)(2,0)(2,3)(3,0)(3,3)

i=0 i= n-1

j=0  i=n-1

int main() {
    int n;
    while (scanf("%d", &n) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 
        for(int i = 0; i < n; i ++)
        {
            for(int j = 0; j < n; j ++)
            {
                if(i == 0 || i ==n-1)
                {
                    printf("* ");
                }
                else if(j == 0 || j == n-1)
                {
                printf("* ");
                }
                else
                 {
                printf("  ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

3.关于return语句说法正确的是哪个?

A.函数中必须有return语句

B.在函数中return语句必须返回值,不能使用return;

C.return语句执行后,return语句后边还有代码则不在执行。

D.return可以返回函数中定义的数组

解析:

A: 函数中可以没return语句,只有需要返回值,或者提前结束函数的是才使用retutrn

B:函数中需要提前结束,但是函数的返回类型是void,不需要返回任何值的时候,就使用return;

C: 正确

D: 函数中创建的数组,只能在函数内部使用,函数中返回数组,其实是将数组的地址返回给主调函数,等函数返回后,数组空间还给操作系统了,主调函数得到的地址就是野指针了。

你可能感兴趣的:(算法,c语言)