作业1:求和
作业要求:
给定一个数组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 arr[] = {3,5,6,8,3,1,2,4,5};
int len = sizeof(arr)/sizeof(arr[0]);
int i = 0;
int sum =0;
for(i=0;i<len;i++)
{
if(i%2 == 1)
{
if(arr[i]%2 == 0)
{
sum += arr[i];
}
}
}
printf("和为%d\n",sum);
return 0;
}
最终效果:
作业2:无重复三位数
作业要求:
有 1、2、3、4个数字,能组成多少互不相同且无重复的三位? 都是多少?
运行代码:
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int arr[4] = {1,2,3,4};
int arr1[3] = {0};
int arr2[2] = {0};
int i = 0;
int j = 0;
int k = 0;
int num = 0;
int num1 = 0;
int num2 = 0;
//思路:
//每次挑出3个元素,for循环4次,
//每三个元素进行排序
for(i = 0;i < 4;i++)
{
num1 = 0;
arr1[0] = 0; arr1[1] = 0;arr1[2] = 0;
for(j = 0;j<4;j++)
{
if(i != j)
{
arr1[num1] = arr[j];
num1++;
}
}
for(j=0;j<3;j++)
{
num2 = 0;
for(k=0;k<3;k++)
{
if(j!=k)
{
arr2[num2] = arr1[k];
num2++;
}
}
printf("%d\n",(arr1[j]*100+arr2[0]*10+arr2[1]));
printf("%d\n",(arr1[j]*100+arr2[1]*10+arr2[0]));
num+=2;
}
}
printf("num = %d\n",num);
return 0;
}
最终效果:
作业3:百钱买百鸡
作业要求:
百钱买百鸡问题:我国古代数学家张丘建在《算经》一书中曾提出过著名的 “百钱买百鸡” 问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
运行代码:
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i = 0; //老鸡数量 5元一只
int j = 0; //母鸡数量 3元一只
int k = 0; //小鸡数量 1元三只
for(i = 0;i<=20;i++) //购买范围: 0~20
{
for(j = 0;j<=33;j++) //购买范围: 0~33
{
for(k = 0;k<=100;k+=3)//购买范围: 0~100
{
if((i*5+j*3+k/3) == 100 && (j+i+k) == 100)
{
printf("ji_old = %-3d,hen == %-3d,j_son = %-3d\n",i,j,k);
}
}
}
}
return 0;
}
最终效果:
作业4:数组倒置
作业要求:
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 = 0;
int j = 0;
int temp = 0;
int len = sizeof(a)/sizeof(a[0]);
for(i=0;i<len;i++)
{
printf("%d ",a[i]);
}
putchar(10);
for(i=0;i<(len/2);i++)
{
temp = a[i];
a[i] = a[len-1-i];
a[len-1-i] = temp;
}
for(i=0;i<len;i++)
{
printf("%d ",a[i]);
}
putchar(10);
return 0;
}