求一个c语言编程

求一个c语言编程,第1张

#include<stdioh>

void main(){

int a,b,c,x,y,z;

printf("请输入x、y、z:");

scanf("%d,%d,%d",&x,&y,&z);

while(x>=y||y>=z||x<=0||y<=0||z<=0){

printf("你输入的数字不正确!\n\n");

printf("请输入x、y、z:");

scanf("%d,%d,%d",&x,&y,&z);

}

for(a=1;a<=z;a++){

for(b=1;b<=z;b++){

for(c=1;c<=z;c++){

if(ax+by==cz){

break;

}

}

}

}

printf("a=%d,b=%d,c=%d\n",a,b,c);

}

#include <stdioh>

#include <mathh>

#include <stdlibh>

#define I 20

#define R 340

#include <stringh>

int main()

{

char answer[10];

printf("遇到你\n我才发现\n曾经所有的条件\n似乎都成了我等你的借口\n\n");

printf("我对你的感情已经决堤\n所以\n请允许我,从今往后映入你\n明媚的眼\n");

printf("我\n想和你\n耳鬓厮磨,相濡以沫!");

printf("答应我吧!\n输入yes,你可以看到我的真心\n");

scanf("%s", answer);

float y, x, z, f;

for (y = 15f; y > -15f; y -= 01f)

{

for (x = -15f; x < 15f; x += 005f)

{

z = x x + y y - 1;

f = z zz - x xyyy;

putchar(f <= 00f ""[(int)(f-80f)] : ' ');

}

putchar('\n');

}

long time;

for (;;)

{

system("color a");

for (time = 0; time<99999999; time++);

system("color b");

for (time = 0; time<99999999; time++);

system("color c");

for (time = 0; time<99999999; time++);

system("color d");

for (time = 0; time<99999999; time++);

system("color e");

for (time = 0; time<99999999; time++);

system("color f");

for (time = 0; time<99999999; time++);

system("color 0");

for (time = 0; time<99999999; time++);

system("color 1");

for (time = 0; time<99999999; time++);

system("color 2");

for (time = 0; time<99999999; time++);

system("color 3");

for (time = 0; time<99999999; time++);

system("color 4");

for (time = 0; time<99999999; time++);

system("color 5");

for (time = 0; time<99999999; time++);

system("color 6");

for (time = 0; time<99999999; time++);

system("color 7");

for (time = 0; time<99999999; time++);

system("color 8");

for (time = 0; time<99999999; time++);

system("color 9");

}

getchar();

return 0;

}

运行效果:

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--&gt;m域宽,打印出来以后,在控制台上,显示m位;

如果我们要打印的数的位数如果超过我们设定m则原样输出;

如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

#include "stdioh"

#include "ctypeh"

#include "malloch"

#include "stdlibh"

#define M 100

#define ZERO 0

#define SUCC 1

#define DEFT 0

#define MIN -1

#define MAX 2001

typedef int valuetype;

typedef struct Bnode

{

valuetype data;

int layer ;

struct Bnode Lson,Rson;

}Bnode,Bptr;

void writeT(Bptr root)

{

int first=0,last=1;

Bptr p,q[M];

if(root->data==MIN)p=root->Rson;

else p=root->Lson;

if(p==NULL)

{ printf(" 当前二叉树为空,没有结点。\n");return;}

printf(" 当前二叉树的结点为:\n");

printf(" 层号 当前结点 左儿子 右儿子\n");

p->layer=1;

q[0]=p;

while(first!=last)

{

p=q[first++];

printf("%6d%10d ",p->layer,p->data);

if(p->Lson==NULL)printf("%12c",'\040');

else

{

printf("%12d",p->Lson->data);

p->Lson->layer=p->layer+1;

q[last++]=p->Lson;

}

if(p->Rson!=NULL)

{

printf("%12d",p->Rson->data);

p->Rson->layer=p->layer+1;

q[last++]=p->Rson;

}

printf("\n");

}

}

void inorder(Bptr p)

{

if(!p)return;

inorder(p->Lson);

printf("%5d",p->data);

inorder(p->Rson);

}

void sortT(Bptr root)

{

if(root->data==MIN) inorder(root->Rson);

else inorder(root->Rson);

printf("\n");

}

Bptr search (valuetype x,Bptr p)

{

while (p!=NULL)

{

if(x==p->data)return p;

if(x<p->data) p=p->Lson;

else p=p->Rson;

}

return NULL;

}

void searchT(Bptr root)

{

int x;

printf("请输入要查找的结点值x>0,x=");

scanf("%d",&x);

if(search(x,root)==NULL)printf("数中没有%d!\n",x);

else printf("%d 已经找到!\n",x);

}

void insert(valuetype x,Bptr &root)

{

Bptr f,p;

f=NULL;p=root;

while(p!=NULL)

{

if(x<p->data)f=p,p=p->Lson;

else f=p,p=p->Rson;

}

p=new Bnode;

p->data=x;p->Lson=p->Rson=NULL;

if(f==NULL)root=p;

else

if(x<=f->data)f->Lson=p;

else f->Rson=p;

}

void insertT(Bptr p)

{

int x;

printf("请输入要插入的结点的值x>0,x=");

scanf("%d",&x);

insert(x,p);

printf("%d已经被插入了\n",x);

}

Bptr creatST()

{

Bptr root ;valuetype x;

root =NULL;

printf(" 构造初始检索树,请输入元素序列,元素个数不得超过%d,要求:\n",M);

printf("序列以%d或%d开始,以0结束,元素值均为小于%d的正整数\n",MIN,MAX,MAX);

scanf("%d",&x);

while(x!=ZERO)

{

insert(x,root);

scanf("%d",&x);

}

return root;

}

int deleteST(valuetype x,Bptr root)

{

Bptr f,p,s,r;

for (p=root;;)

{

if(p==NULL)return DEFT;

if (x==p->data)break;

if(x<p->data)

{

f=p;p=p->Rson;

}

else

{

f=p;p=p->Rson;

}

}

if (p->Rson==NULL)

{

if(p==f->Lson)

f->Lson=p->Rson;

else

f->Rson=p->Lson;

free (p);

return SUCC;

}

s=p->Lson;

if (s->Rson==NULL)

{

p->data=s->data;

p->Lson=s->Lson;

free (s);

return SUCC;

}

r=s->Rson;

while (r->Rson!=NULL)

{

s=r;

r=r->Rson;

}

p->data=r->data;

s->Rson=r->Lson;

free (r);

return SUCC;

}

void deleteT(Bptr root)

{

int x;

printf("请输入要删除的结点值x>0,x=");

scanf("%d",&x);

if(deleteST(x,root))

printf("%d 已经被删除!\n",x);

else

printf(" %d不在树中,无法删除!\n",x);

}

char getalpha()

{

char c;

while(1)

{

c=getchar();

if(isalpha(c))

return c;

}

}

void treeT(Bptr root)

{

char c;

printf(" 对检索树可以进行下列 *** 作:\n");

while (1)

{

printf("请输入 *** 作码:查找F/f 插入I/i 删除D/d 显示P/p 结点排序S/s 终止E/e\nC=");

c=getalpha();

switch(c)

{

case 'f':

case 'F': searchT(root);break;

case 'p':

case 'P': writeT(root);break;

case 'i':

case 'I': insertT(root);break;

case 'd':

case 'D': deleteT(root);break;

case 's':

case 'S': sortT(root);break;

case 'e':

case 'E': writeT(root);return;

default:printf("输入的 *** 作码不正确,请重新输入!\n");

continue;

}

}

}

void main()

{

Bptr root;

root=creatST();

treeT(root);

printf("程序结束,再见!\n");

}

#include <stdioh>

int main()

{

char s1[21],s2[21];

int i, m, n;

scanf("%s",s1); 

scanf("%d %d",&m,&n); 

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

{

s2[i]=s1[i+m];

}

s2[i] = '\0';

printf(s2);

}

刚编了一个:把12枚银币编号,1,2,3,12,每次称重的时候,按照程序提示进行,输入称重结果,就可以了。

运行结果:

5、6、7、8

1、2、3、4:

(输入:0等,1轻,2重)2

3、4、6

1、2、5:

(输入0等,1轻,2重)1

5、4

11、12

(输入0:等,1轻,2重)2

假币5重

源程序:

#include

<stdioh>

void

badcoin(int

x,

int

a)

{

switch(a)

{

case

0:

printf("错误输入");

break;

case

1:

printf("假币%d轻",x);

break;

case

2:

printf("假币%d重",x);

break;

}

}

void

badcoin1(int

x)

{

int

a,

good;

for(good=1;

good==x;

good++){}

printf("%d是假币,

%d

%d

(输入:1轻,2重)",x,x,good);

scanf("%d",&a);

badcoin(x,a);

}

void

badcoins2(int

x,

int

y,

int

a)

{

int

b,

good;

for(good=1;

good==x

||

good==y;

good++){}

printf("%d,%d当中有一个假币",x,y);

switch(a)

{

case

1:

printf("(轻),其中

%d

%d

(输入0:等,1轻)",x,good);

break;

case

2:

printf("(重),其中

%d

%d

(输入0:等,2重)",x,good);

break;

}

scanf("%d",&b);

if(b==0

||

b==a)

{

switch(b)

{

case

0:

badcoin(y,a);

break;

case

1:

case

2:

badcoin(x,b);

break;

}

}

else

{

printf("输入错误\n");

}

}

void

badcoins3(int

x,

int

y,

int

z,

int

a)

{

/

z偏a,或者x和y当中一个偏非a

/

int

b;

printf("%d、%d

11、12

(输入0:等,1轻,2重)",z,y);

scanf("%d",&b);

if(b==0)

badcoin(x,a==12:1);

else

badcoin(b==az:y,b);

}

main()

{

int

a,b;

printf("5、6、7、8

1、2、3、4:

(输入:0等,1轻,2重)");

scanf("%d",&a);

if(a==0)

{

printf("9、10、11

1、2、3:

(输入0等,1轻,2重)");

scanf("%d",&a);

if(a==0)

{

badcoin1(12);

}

else

{

printf("10

9(输入0等,1轻,2重)");

scanf("%d",&b);

if(b==0)

badcoin(11,a);

else

badcoin(a==b10:9,a);

}

}

else

{

printf("3、4、6

1、2、5:

(输入0等,1轻,2重)");

scanf("%d",&b);

if(b==0)

{

badcoins2(7,8,a);

}

else

{

if(a==b)

badcoins3(1,2,6,a);

else

badcoins3(3,4,5,a);

}

}

}

请用VC++60编译

#include"stdioh"

#include"stringh"

#define MAXTRLEN 255

typedef unsigned char SString[MAXTRLEN+1];

void StrAssign(SString &T,char s);//把字符串s复制到T中

int Index_KMP(SString S,SString T,int pos);//KMP找子串位置算法

void get_next(SString T,int next[]);

void get_nextval(SString T,int nextval[]);

void main()

{

SString S,T;

char s[30];

int n=0;

printf("请输入主串\n");

gets(s);

StrAssign(S,s);

printf("请输入模式串\n");

gets(s);

StrAssign(T,s);

n=Index_KMP(S,T,1);

if(n)

printf("T是S的子串,位置为%d\n",n);

else

printf("T不是S的子串\n");

}

//利用模式串T,的next函数求T在主串S中第pos个字符之后的位置的KMP算法。其中,T非空,

//1<=pos<=StrLength(S)。

int Index_KMP(SString S,SString T,int pos)

{

int i,j;

int next[10];

i=pos;j=1;

get_next(T,next);

while(i<=S[0]&&j<=T[0])

{

if(j==0||S[i]==T[j])

{

i++;

j++;

}

else

j=next[j];

}

if(j>T[0])

return i-T[0];

else

return 0;

}

//求模式串T的next 函数值并存入数组next

void get_next(SString T,int next[])

{

int i,j;

i=1;j=0;

next[1]=0;

while(i<T[0])

{

if(j==0||T[i]==T[j])

{

i++;

j++;

next[i]=j;

}

else

j=next[j];

}

}

//求模式串T的next 函数修正值并存入数组nextval

void get_nextval(SString T,int nextval[])

{

int i,j;

i=1;j=0;

nextval[i]=0;

while(i<T[0])

if(j==0||T[i]==T[j])

{

i++;

j++;

if(T[i]!=T[j])

nextval[i]=j;

else

nextval[i]=nextval[j];

}

else

j=nextval[j];

}

void StrAssign(SString &T,char s) //复制s到T

{

int n,i;

n=strlen(s);

T[0]=n;

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

T[i+1]=s[i];

}

#include <stdioh>

int main()

{

  int a=0;

  int num=0;

int i;

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

  scanf("%d",&num);

  for(i=2;i<num;i++){

      if(num%i==0){

          a++;

      }

  }

  if(a==0){

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

  }else{

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

  }

  return 0;

}

扩展资料:

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。

基本算法:若 k%m==0 则说明 k 不是素数。

判断整数n是否为素数——采用枚举法求解。

采用枚举算法解题的基本思路:

(1)确定枚举对象、枚举范围和判定条件;

(2)枚举可能的解,验证是否是问题的解。

枚举算法的一般结构:while循环。

参考资料来源:百度百科-枚举法

以上就是关于求一个c语言编程全部的内容,包括:求一个c语言编程、求一个C语言表白程序、求一个比较复杂的C语言程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/9283755.html

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

发表评论

登录后才能评论

评论列表(0条)

保存