P165
练习7-1的第一问:有,结果只能输出一个下标,但输入数据中可能会有两个需查找的值
#include<stdio.h>//例7-3
#define N 10
int main(void)
{
int i,n,x,flag;//flag 的作用是为了方便输出找不到的情况,需要放到循环外面
int a[N];
printf("Enter n(1<=n<=10),x:");
scanf("%d%d",&n,&x);
printf("输入%d个整数:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
flag=0;//是否有下标的判断标准,默认没有,有则改变,不等于0即可
for(i=0;i<n;i++)
{
if(x==a[i]){
printf("下标为:%d\n",i);
flag=1;//有,则不需要输出Not,改变flag
// break; //这里不能加break;否则 只能查找到一个下标,但输入数据中可能有两个或多个满足条件的元素
}
}
if(flag==0){
printf("Not Found!\n");
}
return 0;
}
练习7-2到7-4
#include<stdio.h>
int main(void)
{
/*求最大值及其下标(练习7-2)*/{
int n,a[10],i,max;
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d numbers:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
max=0;
for(i=0;i<n;i++)
{
if(a[i]>a[max]){
max=i;
}
}
printf("max=%d,min_index=%d\n\n",a[max],max);}
/*将数组中的数逆序存放(练习7-3)*/{
int n,i,t,j;
int a[10];
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d numbers:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);//存放
}
i=0;
j=n-1;
while(i<j){//逆序
t