1.定义一个整形数组arr,长度为5,终端输入5个数,依次存入数组中
#include<stdio.h>
int main(int argc, const char *argv[])
{
int arr[5] = {0};
int i;
for(i=0;i<5;i++)
{
printf("请输入第%d个元素:",i+1);
scanf("%d",&arr[i]);
}
printf("数组中的元素为:");
for(i=0;i<5;i++)
{
printf("\t%d",arr[i]);
}
printf("\n");return 0;
}
2.定义整形数组arr,长度为5,终端输入5个数,依次存入数组中,终端再输入一个数字num,判断是否存在此数组中,在的话,打印存在,不在打印不存在
#include<stdio.h>
int main(int argc, const char *argv[])
{
int arr[5] = {0};
int i;
int num = 0;
for(i=0;i<5;i++)
{
printf("请输入第%d个元素:",i+1);
scanf("%d",&arr[i]);
}printf("请输入一个数:");
scanf("%d",&num);
for(i=0;i<5;i++)
{
if (num == arr[i])
{
break;
}
}
if (i==5)
{
printf("不存在\n");
}else
{
printf("存在\n");
}
printf("\n");return 0;
}
3.定义整形数组arr,长度为len,终端输入len个数,依次存入数组中,求平均值、最小值、最大值、和
#include<stdio.h>
int main(int argc, char const *argv[])
{
int len = 0;//定义数组长度
int arr[len] ;
printf("请输入数组长度:");
scanf("%d",&len);
for (int i = 0; i < len; i++)
{
printf("请输入第%d个元素:",i+1);
scanf("%d",&arr[i]);
}//求和,平均值
int sum = 0;
double avg = 0;
for (int i = 0; i < len; i++)
{
sum += arr[i];
}avg = 1.0*sum/len;
printf("总和为:%d,平均值为:%.2lf\n",sum,avg);
//求最值
int max = 0;
int maxi = 0;
int min = 0;
int mini = 0;
max = arr[0];
maxi = 0;
min = arr[0];
mini = 0;
for (int i = 0; i < len; i++)
{
if (max < arr[i])
{
max = arr[i];//更新最值中的数据
maxi = i;//更新下标
}
}
for (int i = 0; i < len; i++)
{
if (min > arr[i])
{
max = arr[i];//更新最值中的数据
maxi = i;//更新下标
}
}
printf("当前数组的最大值为:%d,在数组中的%d个位置\n",max,maxi);
printf("当前数组的最小值为:%d,在数组中的%d个位置\n",min,mini);return 0;
}
4.有 1、2、3、4个数字,能组成多少互不相同且无重复的三位? 都是多少?
#include<stdio.h>
int main(int argc, char const *argv[])
{
int count = 0;
for (int i = 1; i < 5; i++)
{
for (int j = 1; j < 5; j++)
{
for (int k = 1; k < 5; k++)
{
if (i != j && i != k && j != k)
{
count++;
printf("%d%d%d\n",i,j,k);
}
}
}
}
putchar(10);
printf("一共有%d种可能\n",count);
return 0;
}
5.百钱买百鸡问题:我国古代数学家张丘建在《算经》一书中曾提出过著名的 “百钱买百鸡” 问题, 该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
#include<stdio.h>
int main(int argc, char const *argv[])
{
int cock = 0;//公鸡
int hen = 0;//母鸡
int chicken = 0;//小鸡
for (int cock = 0; cock <=100; cock++)
{
for (int hen = 0; hen <=100; hen++)
{
for (int chicken = 0; chicken <=100; chicken++)
{
if (cock + hen + chicken == 100 && 5*cock+3*hen+chicken/3 == 100 && chicken%3 == 0)
{
printf("公鸡:%d 母鸡:%d 小鸡:%d\n",cock,hen,chicken);
}
}
}
}
return 0;
}
6.数组的逆置 示例: int arr[4] = {1,2,3,4}; 输出 4,3,2,1;
#include<stdio.h>
int main(int argc, char const *argv[])
{
int arr[4] = {1,2,3,4};
for (int i = 0; i < 4/2; i++)//遍历前一半数组
{
//交换
int temp = arr[i];
arr[i] = arr[4-1-i];
arr[4-1-i] = temp;
}
//输出逆序后的数组
for (int i = 0; i < 4; i++)
{
printf("%d\t",arr[i]);
}
putchar(10);return 0;
}