
代码如下:
#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
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)