一些碎碎念:今天的话是,应用数组做的输出案例,是一个正序和逆序的数组输出的案例
可能大家会觉得这个没有用,其实不然,后面的单片机会应用到相关的知识,比如流水灯会依次点亮,而想要流水灯逆向依次点亮的话,便可以设置一个按键定义,按下按键之后,开始逆向输出实现逆向点亮:
上代码了
#include <stdio.h>
int main()
{
int arr[10];
int i;
for(i=0 ; i<10 ; i++)
{
arr[i]=i;
}
puts(" 当前的数组是:\n");
for(i=0 ; i<10 ; i++)
{
printf("%d ",arr[i]);
}
printf("\n");
puts("逆序输出后是:\n");
for(i=9;i>=0;i--)
{
printf("%d ",arr[i]);
}
return 0;
}
用c语言的话,我们可以设置一个if的判断语句,如果用户按下什么什么键位,就开始逆向输出。后面的单片机也会像这样如此,那么我们来试一试吧!
还是比较简单的,只需要在后面一个逆序输出前,加一个条件判断即可:
#include <stdio.h>
int main()
{
int arr[10];
int yorn;
int i;
for(i=0 ; i<10 ; i++)
{
arr[i]=i;
}
puts(" 当前的数组是:\n");
for(i=0 ; i<10 ; i++)
{
printf("%d ",arr[i]);
}
printf("\n是否要逆向输入,是的话请输入1,否请输入0:\n");
scanf("%d",&yorn);
if(yorn==1)
{
printf("逆序输出后是:\n");
i==9;
while(i>0)
{
printf("%d ",arr[i]);
i--;
}
}
if(yorn==0)
{
printf("程序中断");
}
return 0;
}
完成!运行结果如下!
可以看到还是有点毛刺现象,开始我们输入的是0-9十个数字而逆向变成了10-1,虽然也是九个数字,但是输出的元素却变了
让我们修改一下while改成和上面差不多的for
#include <stdio.h>
int main()
{
int arr[10];
int yorn;
int i;
for(i=0 ; i<10 ; i++)
{
arr[i]=i;
}
puts(" 当前的数组是:\n");
for(i=0 ; i<10 ; i++)
{
printf("%d ",arr[i]);
}
printf("\n是否要逆向输入,是的话请输入1,否请输入0:\n");
scanf("%d",&yorn);
if(yorn==1)
{
for(i=9 ; i>=0 ; i--)
{
printf("%d ",arr[i]);
}
}
if(yorn==0)
{
printf("程序中断");
}
return 0;
}
ok看看运行结果!
这次成功了!完成!上面一个毛刺的原因,我怀疑是i==9这一条代码并没有被执行因此 i 还是正序输出时被赋值的10导致的
今天的学习任务到这啦!明天继续加油!