0
点赞
收藏
分享

微信扫一扫

C语言基础演练(4)

题目要求(一):

从n个数据中查找某一个数。若找到,输出其下标;若没找到,则提示没找到。

算法思想:

循环读取n个数,将其放入数组中,再输入要查找的数,最后数组中的数据经排序后查找。

知识点:

1.标准输入函数scanf()和输出函数printf();

2.if(){}控制结构、for(){}循环语句;

3.数组int arr[100]={0}

4.排序法----每次选择最小的数,交换到前面

5.查找法----该题目中用简单查找法

代码:

#include <stdio.h>
int main(void){
int n;//输入数据的个数
printf("请输入数据的个数:");
scanf("%d",&n);

int arr[100]={0};

int i,j;
//输入数据
printf("请输入不同的数据:");
for(i=0;i<n;i++){
scanf("%d",&arr[i]);
}
int del;

//对输入的数据进行排序处理(由小到大)
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(arr[j]<arr[i]){
int t;
t=arr[i];
arr[i]=arr[j];
arr[j]=t;

}
}
}

//输入要查找的数del
printf("请输入要查找的数del:");
scanf("%d",&del);

//查找
for(i=0;i<n;i++){
if(arr[i]==del){
break;
}
}

//判断输出
if(i>=n){
printf("没找到%d.\n",del);
}
else{
printf("找到%d,下标是%d\n",del,i+1);
}
return 0;
}

输出:

请输入数据的个数:5
请输入不同的数据:5 4 3 2 1
请输入要查找的数del:5
找到5,下标是5


题目要求(二):

排列组合问题:给定三个数字,求排列组合数量。

算法思想:

注意数字在组合的过程中不能重复。

比如:123,有6种情况。分别如下

123 132 213 231 312 321

知识点:

1.标准输入函数scanf()和输出函数printf();

2.if(){}控制结构、for(){}循环语句;

3.数组int arr[3]={'1','2','3'}

4.排列组合数学知识

代码:

#include <stdio.h>
int main(void){
char arr[3]={0};
int i,j,k;
//输入三个数
printf("输入三个数:");
for(i=0;i<3;i++){
scanf("%d",&arr[i]);
}

for(i=0;i<3;i++){
for(j=0;j<3;j++){
for(k=0;k<3;k++){
if(i!=j && i!=k && j!=k){
printf("%d %d %d\n",arr[i], arr[j], arr[k]);
}
}
}
}
return 0;
}

输出:

输入三个数:1 2 3
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

-------------END-------------










-----------------------------------






举报

相关推荐

0 条评论