1 题目
/*程序将一维数组a中N个元素的最高位取出,保存在一维数组b的对应位置。
程序运行结果为:
a:82 756 71629 5 2034
b: 8 7 7 5 2
*/
2 思考
简单来说就是取一个数据的最高位。
一开始的笨方法没有办法判断数据的长度,后来看到了聪明的方法,值得学习
3 探究
3.1 聪明的方法
for(i=0;i<sizeof(arr_a)/sizeof(int);i++){temp=arr_a[i];while(temp>10){temp=temp/10;}arr_b[i]=temp;}
3.1 笨方法
for(i=0;i<sizeof(arr_a)/sizeof(int);i++){if(arr_a[i]<10){arr_b[i]=arr_a[i];}else if(arr_a[i]<100){arr_b[i]=arr_a[i]/10;}else if(arr_a[i]<1000){arr_b[i]=arr_a[i]/100;}else if(arr_a[i]<10000){arr_b[i]=arr_a[i]/1000;}else if(arr_a[i]<100000){arr_b[i]=arr_a[i]/10000;}else //if(arr_a[i]<1000000){arr_b[i]=arr_a[i]/100000;} }
4 完整代码
/*程序将一维数组a中N个元素的最高位取出,保存在一维数组b的对应位置。
程序运行结果为:
a:82 756 71629 5 2034
b: 8 7 7 5 2
*/
#include <stdio.h>
int main(void)
{int i=0;int arr_a[]={82 ,756 , 71629 , 5 ,2034};int arr_b[10];int temp;for(i=0;i<sizeof(arr_a)/sizeof(int);i++){temp=arr_a[i];while(temp>10){temp=temp/10;}arr_b[i]=temp;}for(i=0;i<sizeof(arr_a)/sizeof(int);i++){printf("arr_a[%d]=%d\t",i,arr_a[i]);}printf("\n");for(i=0;i<sizeof(arr_a)/sizeof(int);i++){printf("arr_b[%d]=%d\t",i,arr_b[i]);}printf("\n");return 0;
}
5 自己输入元素,练习printf
/*程序将一维数组a中N个元素的最高位取出,保存在一维数组b的对应位置。数组a的数据从键盘输入
程序运行结果为:
a:82 756 71629 5 2034
b: 8 7 7 5 2
*/
#include <stdio.h>
#define N 4int main(void)
{int i=0;int arr_a[N];int arr_b[N];int temp;printf("请输入%d个元素\n",N);for(i=0;i<sizeof(arr_a)/sizeof(int);i++){scanf("%d",&arr_a[i]);}for(i=0;i<sizeof(arr_a)/sizeof(int);i++){temp=arr_a[i];while(temp>10){temp=temp/10;}arr_b[i]=temp;}for(i=0;i<sizeof(arr_a)/sizeof(int);i++){printf("arr_a[%d]=%d\t",i,arr_a[i]);}printf("\n");for(i=0;i<sizeof(arr_a)/sizeof(int);i++){printf("arr_b[%d]=%d\t",i,arr_b[i]);}printf("\n");return 0;
}
6 求输入元素最低位——拓展题
/*程序将一维数组a中N个元素的最低位取出,保存在一维数组b的对应位置。数组a的数据从键盘输入
程序运行结果为:
a:82 756 71629 5 2034
b: 2 6 9 5 4
*/
#include <stdio.h>
#define N 4int main(void)
{int i=0;int arr_a[N];int arr_b[N];int temp;printf("请输入%d个元素\n",N);for(i=0;i<sizeof(arr_a)/sizeof(int);i++){scanf("%d",&arr_a[i]);}for(i=0;i<sizeof(arr_a)/sizeof(int);i++){arr_b[i]=arr_a[i]%10;}for(i=0;i<sizeof(arr_a)/sizeof(int);i++){printf("arr_a[%d]=%d\t",i,arr_a[i]);}printf("\n");for(i=0;i<sizeof(arr_a)/sizeof(int);i++){printf("arr_b[%d]=%d\t",i,arr_b[i]);}printf("\n");return 0;
}