以下内容来自课堂总结:
总结的内容都是自己写代码时 没想到的 或者个人感觉比较重要的。如有误解,还请见谅。
一、知识点总结
1、数组和循环
for(i=0;i<n;i++)
printf("%d",a[i]);
分析:数组下标作为循环变量,通过循环,逐个处理数组元素。
2、数组元素的使用方法
scanf("%d",&a[i]);
sum=sum+a[i];
printf("%d",a[i]);
在这里插入代码片
3、计算数组元素个数
char arr1[3]={'a','c','z'};
int len1=sizeof(arr1)/sizeof(char);
printf("%d",len1);
int arr2[5]={1,22,33,44,5};
int len2=sizeof(arr2)/sizeof(int);
printf("%d",len2);
在这里插入代码片
二、问题,程序代码及运行结果
问题一:
1,问题:输入10个整数,计算这些数的平均值,再输出大于平均值的数。
2、程序代码
#include<stdio.h>
int main()
{
int i,sum=0;
double average;
int arr[10];
printf("enter ten numbers:");
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
sum = sum + arr[i];
}
average = sum / 10;
printf("average=%.2f\n", average);
for (i = 0; i < 10; i++)
{
if (arr[i] > average)
printf("arr[%d]=%d\n", i, arr[i]);
}
printf("\n");
return 0;
}
在这里插入代码片
3、运行结果(图片展示)
问题二:
1、问题:用数列计算斐波那契数列的前10个数,并按每行打印5个数的格式输出。
分析:斐波那契数列前几项为1,1,2,3,5,8,13,······
用数组计算并存放斐波那契数列的前10个数
f[0]=f[1]=1
f[i]=f[i-1]+f[i-2] 2 <= i <= 9
2、程序代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i;
int f[10] = { 1,1 };
for (i = 2; i < 10; i++)
f[i] = f[i - 1] + f[i - 2];
for (i = 0; i < 10; i++)
{
printf("f[%d]=%d ",i,f[i]);
if ((i + 1) % 5 == 0)
printf("\n");
}
return 0;
在这里插入代码片
3、运行结果(图片展示)
问题三:
1、问题:在数组中查找一个给定的数。
输入五个整数,将他们存入数组a中,再输入一个数x,如果找到,输出相应的最小下标,否则,输出 “NOT FOUNT”。
2、程序代码
#include<stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main()
{
int a[5];
int i, x,flag;
printf("enter five numbers:");
for (i = 0; i < 5; i++)
scanf("%d", &a[i]);
printf("enter x:");
scanf("%d", &x);
flag = 0;
/*
for (i = 0; i < 5; i++)
{
if (a[i] == x)
printf("lndex = %d\n", i);
} 这段for循环可写可不写
*/
for (i = 0; i < 5; i++)
if (x == a[i])
{
printf("Min lndex is %d\n", i);
flag = 1;
break;
}
if (flag == 0)
printf("NOT FOUNT");
return 0;
}
这里思考一下flag的作用(下面会解答)。
3、编译运行结果
例子,如下:
输入:2 9 8 1 9
9
输出:1
输入:2 9 8 1 6
7
输出:NOT FOUNT
#解答flag的作用:如输入的x时数组中的数字,flag其实就是为了跳过下面的if语句,如果输入的不是数组内的数字就是为了执行下面的if语句。
#如果去掉 break 会出现什么样的情况呢?
还以上面的数字为例:
其实就是在输出Min lndex is 1,后还会再进行循环。
#也可以思考 break 有什么作用。
问题四:
1,问题:在数组中查找最小值,及其下标。
输入x(x<10), 再输入x个数, 输出最小值和它所对应的下标,用index记录最小值对应的下标 , a[index]就是最小值。
2、程序代码
#include<stdio.h>
int main()
{
int x,i,index;
int a[10];
printf("enter x:");
scanf("%d", &x);
printf("enter numbers:");
for (i = 0; i < x; i++)
scanf("%d",&a[i]);
index = 0;
for (i = 1; i < x; i++)
{
if (a[index] > a[i])
index = i;
}
printf("min is %d ,index is %d",a[index],index);
return 0;
}
在这里插入代码片
3、编译运行结果
例子,如下
enter x:6
enter numbers:2 9 -1 8 1 6
min is -1, index is 2
后面还会出关于数组相关题型解题思路。