编写一个完整的程序,实现如下功能

编写一个完整的程序,实现如下功能,第1张

代码如下:

#include <stdio.h>

#include <stdlib.h>

#define N 10

void input(int data[], int n)

{

int i

printf("请输入%d个整数:\n", n)

for (i = 0 i < n i++) {

scanf("%d", &data[i])

}

}

void sort(int data[], int n)

{

int i, j, temp

for (i = 0 i < n - 1 i++) {

for (j = 0 j < n - i - 1 j++) {

if (data[j] < data[j + 1]) {

temp = data[j]

data[j] = data[j + 1]

data[j + 1] = temp

}

}

}

}

void print(int data[], int n)

{

int i

for (i = 0 i < n i++) {

printf("%d ", data[i])

}

printf("\n")

}

// 折半查找

int search(int data[], int n, int val)

{

int low, high, mid

low = 0

high = n - 1

while (low <= high) {

mid = (low + high) / 2

if (data[mid] == val)

return mid

if (data[mid] > val) {

low = mid + 1

}

if (data[mid] < val) {

high = mid - 1

}

}

return -1

}

int main()

{

int data[N], val, i

input(data, N)

sort(data, N)

printf("排序后:\n")

print(data, N)

printf("请输入一个需要查找的数:")

scanf("%d", &val)

i = search(data, N, val)

if (i != 0) {

printf("数字 %d 在数据组中第 %d 个位置。\n", val, i + 1)

}

else {

printf("数字 %d 在数据组中不存在。\n", val)

}

system("pause")

return 0

}

运行结果;

根据你的要求,只要将以下代码写入程序即可实现你说的功能,具体如下:

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#define LIST_INIT_SIZE 20

#define LISTINCREMENT 10

struct myList

{

int elem

int length

int listsize

}

int InitList(myList&L)

{

L.elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int))

if(!L.elem)

{

exit(0)

}

L.length=0

L.listsize=LIST_INIT_SIZE

return 1

}

int ListInsert(myList &L,int i,int x)

{

int *newbase,*p,*q

if(i<1||i>L.length-1)

{

return -1

}

if(L.length>=L.listsize)

{

if(!(newbase=(int*)realloc(L.elem,(LIST_INIT_SIZE+LISTINCREMENT)*sizeof(int))))

exit(0)

L.elem=newbase

L.listsize+=LISTINCREMENT

}

p=L.elem+i

for(q=L.elem+L.length-1q<=p--q)

{

*(q+1)=*q

}

*p=x

++L.length

return 1

}

int ListDelete(myList &L,int i)

{

int *newbase,*p,*q

if(i<1||i>L.length-1)

{

return -1

}

if(L.length<1)

{

return -1

}

p=L.elem+i

for(q=pq<=L.elem+L.length-1++q)

{

*q=*(q+1)

}

--L.length

return 1

}

int main(void)

{

int n,i,x

SqList L

InitList(L)

printf("请输入线性表L的长度:\n")

scanf("%d",&n)

printf("请输入数据:\n")

for(i=0i<ni++)

{

scanf("%d",&L.elem[i])

}

printf("顺序表的元素有:\n")

for(i=0i<ni++)

{

printf("%d ",L.elem[i])

}

printf("\n")

printf("请输入插入位置i:\n")

scanf("%d",&i)

ListInsert(L,i,4)

printf("插入后的线形表:\n")

for(i=0i<=ni++)

{

printf("%d ",L.elem[i])

}

printf("请输入删除位置i:\n")

scanf("%d",&i)

ListInsert(L,i)

printf("删除后的线形表:\n")

for(i=0i<=ni++)

{

printf("%d ",L.elem[i])

}

return 0

}

你一开始是想用m来表示是不是素数,到后面怎么输出的是i变量了,还有代码风格比较差,,虽然我也是新手。。

# include <stdio.h>

int main(void)

{

int n, i, flag

for( n = 2n <= 100n++ )

{

flag = 0//每一次都要重新改变

for( i = 2i <= n/2i++ )

{

if( n%i == 0 )

{

flag = 1//改变状态

break

}

}

if( !flag )

printf("%d\n", n)

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7853187.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存