#include <stdio.h> #define N 10 int search(int *p,int x,int n) { } int main() { int indx,m,a[N]={10,20,35,40,43,44,45,50,51,60}; scanf("%d",&m); if(indx>=0) printf("index=%d\n",indx); else printf("NOEXIST\n"); return 0; } 请完善代码【输入形式】输入待查找的数据 【输出形式】输出查找结果(数组下标值或NOEXIST)
时间: 2024-03-18 07:40:01 浏览: 48
完善后的代码如下:
```c
#include <stdio.h>
#define N 10
int search(int *p, int x, int n) {
int i;
for (i = 0; i < n; ++i) {
if (*(p+i) == x) {
return i;
}
}
return -1;
}
int main() {
int indx, m, a[N] = {10, 20, 35, 40, 43, 44, 45, 50, 51, 60};
scanf("%d", &m);
indx = search(a, m, N);
if (indx >= 0)
printf("index=%d\n", indx);
else
printf("NOEXIST\n");
return 0;
}
```
其中,`search` 函数是一个线性查找算法,用于在数组 `a` 中查找元素 `x` 的下标值,找到返回下标值,否则返回 `-1`。在 `main` 函数中,先读入待查找的数据 `m`,然后调用 `search` 函数进行查找,最后根据返回值输出查找结果。
相关问题
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h> #define MAXV 1000 #define ElemType int #define INF 32767typedef struct { int no; int info; }VertexType; typedef struct{ int edges[MAXV][MAXV]; int n,e; VertexType vexs[MAXV]; }
MGraph;
void CreateMGraph(MGraph *G)
{
int i,j,k,w;
printf("请输入顶点数和边数:\n");
scanf("%d,%d",&(G->n),&(G->e));
for(i=0;i<G->n;i++)
{
printf("请输入第%d个顶点的编号和信息:\n",i+1);
scanf("%d,%d",&(G->vexs[i].no),&(G->vexs[i].info));
}
for(i=0;i<G->n;i++)
for(j=0;j<G->n;j++)
G->edges[i][j]=INF;
for(k=0;k<G->e;k++)
{
printf("请输入一条边的起点、终点和权值:\n");
scanf("%d,%d,%d",&i,&j,&w);
G->edges[i][j]=w;
G->edges[j][i]=w;
}
}
void ShortestPath_Dijkstra(MGraph G,int v0,int *D,int *P)
{
int final[MAXV];
int i,j,k,min;
for(i=0;i<G.n;i++)
{
final[i]=0;
D[i]=G.edges[v0][i];
P[i]=0;
}
D[v0]=0;
final[v0]=1;
for(i=1;i<G.n;i++)
{
min=INF;
for(j=0;j<G.n;j++)
if(!final[j]&&D[j]<min)
{
k=j;
min=D[j];
}
final[k]=1;
for(j=0;j<G.n;j++)
if(!final[j] && (min+G.edges[k][j]<D[j]))
{
D[j]=min+G.edges[k][j];
P[j]=k;
}
}
}
void DisplayResult(MGraph G,int v0,int *D,int *P)
{
int i,j,k;
printf("起点为%d的最短路径如下:\n",v0);
for(i=0;i<G.n;i++)
{
if(i!=v0)
{
printf("从%d到%d的最短路径长度为:%d,路径为:",v0,i,D[i]);
j=i;
while(P[j]!=0)
{
printf("%d<-",G.vexs[j].no);
j=P[j];
}
printf("%d\n",G.vexs[j].no);
}
}
}
int main()
{
MGraph G;
int v0=0;
int D[MAXV],P[MAXV];
CreateMGraph(&G);
ShortestPath_Dijkstra(G,v0,D,P);
DisplayResult(G,v0,D,P);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> int main(int argc, char* argv[]) { int a = 1; printf("\n%d\n", a % 2); system("pause"); return 0; }
你好!这是一个简单的C语言程序,它定义了一个宏 `_CRT_SECURE_NO_WARNINGS`,然后包含了一些头文件(stdio.h、string.h、stdlib.h)。在主函数中,声明了一个整型变量 a 并赋值为 1,然后使用 `%` 操作符计算 a 除以 2 的余数,并将结果打印出来。最后使用 `system("pause")` 函数来暂停程序的执行,以便查看输出结果。整个程序的返回值为 0,表示程序正常结束。
阅读全文