1.定义一个整形数组arr,长度为5,终端输入5个数,依次存入数组中。
代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
int arr[4];
int i;
for(i=0;i<5;i++)
{
printf("输入的第%d数是:",i+1);
scanf("%d",&arr[i]);
}
return 0;
}
结果
输入的第1数是:1
输入的第2数是:2
输入的第3数是:3
输入的第4数是:4
输入的第5数是:5
2.定义整形数组arr,长度为5,终端输入5个数,依次存入数组中,终端再输入一个数字num,判断是否存在此数组中,在的话,打印存在,不在打印不存在。
代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
int arr[4];
int i,num;
int flag;
scanf("%d",&num);
printf("依次输入5个数\n");
for(i=0;i<5;i++)
{
flag = 0;
scanf("%d",&arr[i]);
if(num==arr[i])
{
flag = 1;
}
}
if(flag == 1)
{
printf("存在\n");
}
else
{
printf("不存在\n");
}
return 0;
}
结果
7
依次输入5个数
1 2 3 5 8
不存在
3.定义整形数组arr,长度为len,终端输入len个数,依次存入数组中,求平均值、最小值、最大值、和。
代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
int len=0,i;
int arr[len];
int sum=0,mean;
int max = 0, min = 0;
printf("请输入len值\n");
scanf("%d",&len);
printf("请输入%d个值",len);
for(i=0;i<len;i++)
{
scanf("%d",&arr[i]);//输入数组的值
}
max = arr[0];
min = arr[0];
for(i=0;i<len;i++)
{
if(max<=arr[i])//判断最大值
{
max = arr[i];
}
if(min>=arr[i])//判断最小值
{
min = arr[i];
}
sum = sum + arr[i];//求和
}
mean = sum / len;//求平均值
printf("最大值为%d\n最小值为%d\n和为%d\n平均值为%d\n",max,min,sum,mean);
return 0;
}
结果
请输入len值
5
请输入5个值1 2 3 4 5
最大值为5
最小值为1
和为15
平均值为3
4.有 1、2、3、4个数字,能组成多少互不相同且无重复的三位? 都是多少?
代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
int i,j,k;
int arr[4]={1,2,3,4};
int num;
int cou=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
for(k=0;k<4;k++)
{
num = arr[i]*100+arr[j]*10+arr[k];
if(arr[i]==arr[j]||arr[i]==arr[k]||arr[j]==arr[k])
{
}
else
{
cou = cou + 1;
printf("%d\t",num);
}
}
}
}
printf("\n");
printf("一共可以组成%d个互不相同的无重复三位数,如上\n",cou);
return 0;
}
结果
123 124 132 134 142 143 213 214 231 234 241 243 312 314 321 324 341 342
一共可以组成18个互不相同的无重复三位数,如上
5.百钱买百鸡问题:我国古代数学家张丘建在《算经》一书中曾提出过著名的 “百钱买百鸡” 问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{//百钱买百鸡问题:我国古代数学家张丘建在《算经》一书中曾提出过著名的 “百钱买百鸡” 问题,
//该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;
//鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
//一只公鸡 5钱
//一只母鸡 3钱
//三只小鸡 1钱 100钱买100只鸡
int i,j,k;
int sum=100;
for(i=0;i<=20;i++)
{
for(j=0;j<=33;j++)
{
for(k=0;k<=100;k++)
{
if((sum ==i*5+3*j+k) && (i+j+3*k==sum))
{
printf("公鸡的数量是%d\t母鸡的数量是%d\t小鸡的数量是%d\n",i,j,k);
}
}
}
}
return 0;
}
结果
公鸡的数量是0 母鸡的数量是25 小鸡的数量是25
公鸡的数量是4 母鸡的数量是18 小鸡的数量是26
公鸡的数量是8 母鸡的数量是11 小鸡的数量是27
公鸡的数量是12 母鸡的数量是4 小鸡的数量是28
6.数组的逆置。
代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
int i,j,k,n=0;
int arr[n];
int s;
printf("请输入数组位数\n");
scanf("%d",&n);
printf("输入数组的值\n");
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
for(j=0;j<n/2;j++)
{
s = arr[n-j-1];
arr[n-j-1] = arr[j];
arr[j] = s;
}
for(k=0;k<n;k++)
{
printf("%d ",arr[k]);
}
return 0;
}
结果
1 2 3 4 5 6 7
7 6 5 4 3 2 1