C语言四个方向,C语言的四个程序

答案://1.将N个整数按输入时顺序逆序排列(要求在主函数中输入N个整数,调用排序函数,输出

排序结果,通过指针实现)

#include

#include

typedef struct array

{ int value;

struct array *next;

}LINK;

void main()

{ void shuchu(LINK *p);

LINK *head,*p,*p1;int x;

head=(LINK *)malloc(sizeof(LINK));

head->next=NULL;

printf("请输入(以输入0结束):\n");

scanf("%d",&x);

p=(LINK *)malloc(sizeof(LINK));

p->value=x;

head->next=p;

p->next=NULL;

while(x!=0)

{ scanf("%d",&x);

p1=(LINK *)malloc(sizeof(LINK));

p1->value=x;

p1->next=p;

head->next=p1;

p=p1;

}

shuchu(head);

}

void shuchu(LINK *p)

{

LINK *p1=p;p1=p1->next;

do

{

p1=p1->next;printf("%5d",p1->value);

}

while(p1->next!=NULL);

printf("\n");

}

//2.求一个字符串长度,在main函数中输入字符串,并输出其长度(要求函数的参数用字符串指针)

#include

#define N 100

void main()

{ char s[N];

int stringln(char s[]);

printf("please input the char!\n");

scanf("%s",s);

printf("%d\n",stringln(s));

}

int stringln(char s[])

{

int i;

for(i=0;s[i]!='\0';i++);

return (i);

}

//3.编写一个函数,输入N为偶数时,调用函数1/2+1/4+...+1/n,将N为奇数时调用函数1+1/3。。。+1/n.

#include

void main()

{

int n;

void f1(int n);void f2(int n);

printf("请输入N的值:\n");

scanf("%d",&n);

if(n%2)

{

f1(n);

}

else

f2(n);

}

void f2(int n)

{

float sum=0;float i;

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

{

sum+=1/i;

}

printf("%f\n",sum);

}

void f1(int n)

{

float sum=0;float i;

for(i=1;i<=n;i+=2)

{

sum+=1/i;

}

printf("%f\n",sum);

}

//4判断一个数是否是素数

#include

void main()

{

int prime(int);

int n;

printf("\n请输入一个正整数:\n");

scanf("%d",&n);

if(prime(n))

printf("\n%d是一个素数。\n",n);

else

printf("\n%d不是一个素数。\n",n);

}

int prime(int n)

{

int flag=1,i;

for(i=2;i

if(n%i==0)

flag=0;

return(flag);

}

流程图加我QQ:393605067再给你,作业最好自己做啊

1, 排序

#include

#include

void sort(int a[], int Num);

int main(void)

{

int N;

printf("input N : ");

scanf("%d", &N);

int *p = (int *) malloc(sizeof(int) * N);

printf("input %d integers : ", N);

for (int i = 0; i < N; ++i)

scanf("%d", &p[i]);

sort(p, N);

for (int i = 0; i < N; ++i)

printf("%-4d ", p[i]);

printf("\n");

free(p);

return EXIT_SUCCESS;

}

void sort(int a[], int Num)

{

int temp, i;

for (; Num > 1; --Num)

for (i = 0; i < Num - 1; ++i)

if (a[i] > a[i+1])

{

temp = a[i];

a[i] = a[i+1];

a[i+1] = temp;

}

}

2, 字符串长度

#include

#include

#include

int main(int argc, char *argv[])

{

if (argc < 2)

fprintf(stderr, "Not parameter\n"), exit(-1);

for (int i = 1; i < argc; ++i)

printf("the size of \"%s\" : %d\n", argv[i], strlen(argv[i]));

return EXIT_SUCCESS;

}

3, 计数

#include

#include

double func1(int N);

double func2(int N);

int main(void)

{

double (*pf_array[])(int) = {func1, func2};

char *str[] = {"func1", "func2"};

printf("please input a integer : ");

int N;

scanf("%d", &N);

printf("Use %s\n", str[N % 2]);

printf( "The result is %f\n", pf_array[N % 2](N) );

return EXIT_SUCCESS;

}

double func1(int N)

{

double sum = 0;

for (int i = 1; i <= N / 2; ++i)

sum += 1.0f / (2 * i);

return sum;

}

double func2(int N)

{

double sum = 0;

for (int i = 1; i <= (N + 1) / 2 ; ++i)

sum += 1.0f / (2 * i - 1);

return sum;

}

4, 判断质数

#include

#include

#include

int iszhishu(int N)

{

if ( (N != 2 && N % 2 == 0) || N <= 1)

return 0;

for (int i = 3; i <= sqrt(N); i += 2)

if ( N % i == 0)

return 0;

return 1;

}

int main(void)

{

printf("please input a integer : ");

int N;

scanf("%d", &N);

if (iszhishu(N))

printf("%d is zhishu\n", N);

else

printf("%d is not zhishu\n", N)

return EXIT_SUCCESS;

}

//By Jimly

//1题

#include

#define MAX 50

//逆序函数

void Sort(int *num,int n)

{

int temp = 0;

for (int i = 0;i

{

temp = *(num+n-i-1);

*(num+n-i-1) = *(num+i);

*(num+i) = temp;

}

}

//主函数

int main()

{

int ayy[MAX];

int MaxSize = 0;

int *p = ayy;

printf("输入要输入的整数个数:");

scanf("%d",&MaxSize);

for (int i = 0;i

{

scanf("%d",p+i);

}

Sort(p,MaxSize);

printf("逆序结果:\n");

for (i = 0;i

{

printf("%d ",*(p+i));

}

printf("\n");

return 0;

}//end

//2题

#include

//求字符串长度函数,返回值为长度

int StringLength(char* tp)

{

for (int i = 0;*(tp+i)!='\0';i++)

{

}

return i;

}

//主函数

int main()

{

char str[100];

char *p = str;

printf("请输入字符串:");

scanf("%s",p);

printf("字符串的长度为:%d\n",StringLength(p));

return 0;

}

//3题

#include

//求字符串长度函数,返回值为长度

double GetValue(int n)

{

double sum = 0;

if (n%2==0) //偶数

{

for (int i = 0;i

{

sum += (double)1/(2+i*2);

}

}

if (n%2) //奇数

{

for (int i = 0;i

{

sum += (double)1/(1+i*2);

}

}

return sum;

}

//主函数

int main()

{

int num = 0;

printf("请输入一个数:");

scanf("%d",&num);

printf("计算结果:%g\n",GetValue(num));

return 0;

}//end

//4题

#include

#include

bool IsPrimer(int n)

{

int m=(int)sqrt(n);

for(int i=2;i<=m;i++)

{

if(n%i==0) return false;

}

return true;

}

int main()

{

int num = 0;

printf("请输入数:");

scanf("%d",&num);

if (IsPrimer(num))

{

print

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值