1.定义一个整形数组arr,长度为5,终端输入5个数,依次存入数组中
详细代码:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
int arr[5];
printf("请输入5个数字:\n");
for(int i=0;i<5;i++){
scanf("%d",&arr[i]);
}
for(int i=0;i<5;i++){
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
结果:
请输入5个数字:
1 2 3 4 5
1 2 3 4 5
2.定义整形数组arr,长度为5,终端输入5个数,依次存入数组中,终端再输入一个数字num,判断是否存在此数组中,在的话,打印存在,不在打印不存在
详细代码:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
int arr[5];
int n = 0;
int num = 0;
printf("请输入5个数字:\n");
for(int i=0;i<5;i++){
scanf("%d",&arr[i]);
}
printf("请输入要匹配的数:\n");
scanf("%d",&num);
for(int i=0;i<5;i++){
if(num == arr[i]){
n = 0;
}else{
n = 1;
}
}
if(n == 0){
printf("存在\n");
}else{
printf("不存在\n");
}
return 0;
}
结果:
请输入5个数字:
1 2 3 4 5
请输入要匹配的数:
5
存在
请输入5个数字:
1 2 3 4 5
请输入要匹配的数:
9
不存在
3.定义整形数组arr,长度为len,终端输入len个数,依次存入数组中,求平均值、最小值、最大值、和
详细代码:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
int len=0;
int arr[len];
int sum=0;
float everage=0.0;
int max=0;
int less=9999;
//输入len大小,即为数组大小
printf("请输入数组的大小:\n");
scanf("%d",&len);
//初始化数组
for(int i=0;i<len;i++){
printf("请输入数组的第%d个值",i+1);
scanf("%d",&arr[i]);
}
//求平均值
for(int i=0;i<len;i++){
sum = sum+arr[i];
everage = (float)sum/len;
}
//求最大值
for(int i=0;i<len;i++){
if(arr[i]>max){
max = arr[i];
}
}
//求最小值
for(int i=0;i<len;i++){
if(arr[i]<less){
less = arr[i];
}
}
printf("平均值:%.2f 最大值:%d 最小值:%d\n",everage,max,less);
return 0;
}
结果:
请输入数组的大小:
6
请输入数组的第1个值9
请输入数组的第2个值6
请输入数组的第3个值5
请输入数组的第4个值8
请输入数组的第5个值4
请输入数组的第6个值7
平均值:6.50 最大值:9 最小值:4
4.有 1、2、3、4个数字,能组成多少互不相同且无重复的三位? 都是多少?
详细代码:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
int arr[4]={1,2,3,4};
int n=0;
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
if(i==j){
continue;
}
for(int k=0;k<4;k++){
if(j==k){
continue;
}
if(i==k){
continue;
}
printf("%d ",arr[i]*100+arr[j]*10+arr[k]);
n++;
}
}
printf("\n");
}
printf("一共有:%d个\n",n);
return 0;
}
结果:
123 124 132 134 142 143
213 214 231 234 241 243
312 314 321 324 341 342
412 413 421 423 431 432
一共有:24个
5.百钱买百鸡问题:
我国古代数学家张丘建在《算经》一书中曾提出过著名的 “百钱买百鸡” 问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
详细代码:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
int x,y,z;
for(x=0;x<20;x++){
for(y=0;y<33;y++){
z=100-y-x;
if((5*x+3*y+z/3)==100 && z%3==0){
printf("公鸡:%d 母鸡:%d 小鸡:%d\n",x,y,z);
}
}
}
return 0;
}
结果:
公鸡:0 母鸡:25 小鸡:75
公鸡:4 母鸡:18 小鸡:78
公鸡:8 母鸡:11 小鸡:81
公鸡:12 母鸡:4 小鸡:84
6.数组的逆置
示例: int arr[4] = {1,2,3,4}; 输出 4 3 2 1
详细代码:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, const char *argv[])
{
int arr[]={1,2,3,4,5,6,7,9,10,14,17,31};
int len = sizeof(arr)/sizeof(int);
int temp;
for(int i=0;i<len/2;i++){
temp = arr[i];
arr[i] = arr[len-i-1];
arr[len-i-1] = temp;
}
for(int i=0;i<len;i++){
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
结果:
31 17 14 10 9 7 6 5 4 3 2 1