一、定义一个一维数组 int a[] = {1,2,3,4,5,6,7,8}
1.求数组长度
2.将所有奇数下标元素自乘3,偶数下标元素自增2 ,输出变化后的数组。
1.
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a[]={1,2,3,4,5,6,7,8};
int len=sizeof(a)/sizeof(a[0]);
printf("%d\n",len);
}
2.
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a[]={1,2,3,4,5,6,7,8};
int len=sizeof(a)/sizeof(a[0]);//计算数组长度
int i;
printf("%d\n",len);
for(i=0;i<len;i++){
if(i%2==0)
a[i]+=2;
else
a[i]*=3;
}
for(i=0;i<len;i++){
printf("%d ",a[i]);
}
}
二、给定一个数组int arr[] = {3,5,6,8,3,1,2,4,5},求数组中所有下标为奇数的元素&&元素为偶数的和
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a[]={3,5,6,8,3,1,2,4,5};
int i;
int sum1=0,sum2=0;
int len=sizeof(a)/sizeof(a[0]);
for(i=0;i<len;i++){
if(i%2==0)
sum2+=a[i];
else
printf("%d为奇数下标的数字\n",a[i]);
sum1+=a[i];
}
printf("奇数和为%d,偶数和为%d\n",sum1,sum2);
return 0;
}
三、有 1、2、3、4个数字,能组成多少互不相同且无重复的三位? 都是多少?
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int i,j,k;
for(i=1;i<5;i++){
for(j=1;j<5;j++){
for(k=1;k<5;k++){
if(i!=j &&i!=k && j!=k)
printf("%d\n",100*i+10*j+k);
}
}
}
return 0;
}
123 124 132 134142 143 213 214 231 234 241 243 312 314 321 324 341 342 412 413 421 423 431 432
四、百钱买百鸡问题:我国古代数学家张丘建在《算经》一书中曾提出过著名的 “百钱买百鸡” 问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int i,j,k;
for(i=0;i<100/5;i++){
for(j=0;j<100/3;j++){
for(k=0;k<100;k++){
if(5*i+3*j+k/3==100 && k%3==0 && i+j+k==100)
printf("鸡翁%d,鸡母%d,鸡雏%d\n",i,j,k);
}
}
}
return 0;
}
五、数组的逆置
int arr[5] = {1,2,3,4,5} 逆置:为 {5,4,3,2,1}
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
int a[5]={1,2,3,4,5};
int i,temp;
int len=sizeof(a)/sizeof(a[0]);
for(i=0;i<len/2;i++){
temp=a[i];
a[i]=a[len-i-1];
a[len-i-1]=temp;
}
for(i=0;i<len;i++){
printf("%d ",a[i]);
}
return 0;
}
重点:
1.len=sizeof(a)/sizeof(a[0]) 计算数组长度
2.a是数组元素的首地址
3.printf("%p",a);
printf("%p",a[0]);
printf("%ld",sizeof(a));