首页 > 电脑 > 求帮编写程序

求帮编写程序

电脑 2022-05-27

求c语言大佬帮助!帮我写个小程序,谢谢

#include
#include
#include
voidInit(inta[],intn); //随机生成元素取值范围在0到99的数组
voidShort(int*p,intn); //用选择法对数组中的元素从小到大排序
voidPrint(int*p,intn); //在屏幕上输出数组各元素的值(逗号分隔)
#defineN(10)
intmain()
{
inta[N],b[N],c[N*2],i;
srand(time(NULL));

Init(a,N);
Print(a,N);
Short(a,N);
Print(a,N);

Init(b,N);
Print(b,N);
Short(b,N);
Print(b,N);

for(i=0;i{
c[i]=a[i];
}
for(i=0;i{
c[i+N]=b[i];
}
Print(c,2*N);
Short(c,2*N);
Print(c,2*N);

return0;
}
voidInit(inta[],intn)
{
inti;
for(i=0;i{
*a++=rand()%100;
}
}
voidShort(int*p,intn)
{
inti,j,t;
for(i=0;i{
for(j=0;j{
if(p[j]>p[j+1])
{
t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
}
}
}
voidPrint(int*p,intn)
{
inti;
for(i=0;i{
printf("%d%c",*p++,i}
}

求大佬帮写程序

#include

#include


void DeleteFun(char *p, char ch)

{

char *p1 =NULL;

if (p == NULL)

{

return ;

}

while (p1 = strchr(p,ch))

{

p1++;

while(*p1)

{

*(p1-1) = *p1;

p1++;

}

*(p1-1) = *p1;

}

}


int main()

{

char str[100] = {0};

char ch;


gets(str);

ch = getchar();

DeleteFun(str,ch);

printf("str=%s\n",str);


return 0;

}

求大佬帮忙编写一个java程序。越简单越好

按照题目要求编写的生产者消费者模式的Java程序如下

//生产者-消费者模式
publicclassThreadDemo{
publicstaticvoidmain(String[]args){
Stores=newStore(10);
Threadt1=newProducer("producer1",s);
Threadt2=newConsumer("consumer1",s);
t1.start();
t2.start();
}
}
//生产者类
classProducerextendsThread{
privateStringname;
privateStores;
publicProducer(Stringname,Stores){
this.name=name;
this.s=s;
}
publicvoidrun(){
while(true){
s.push(name);
}
}
}
//消费者类
classConsumerextendsThread{
privateStringname;
privateStores;
publicConsumer(Stringname,Stores){
this.name=name;
this.s=s;
}
publicvoidrun(){
while(true){
s.pop(name);
}
}
}
//仓库类
classStore{
privatefinalintsize;
privateintcount;
publicStore(intsize){
this.size=size;
}
publicsynchronizedvoidpush(Stringname){
try{
Thread.sleep(200);
}catch(InterruptedExceptione1){
e1.printStackTrace();
}
if(count==this.size){
try{
this.wait();
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
count++;
System.out.println(name+"produce"+count);
this.notify();
}
publicsynchronizedvoidpop(Stringname){
try{
Thread.sleep(200);
}catch(InterruptedExceptione1){
e1.printStackTrace();
}
if(count==0){
try{
this.wait();
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
System.out.println(name+"consume"+count);
count--;
this.notify();
}
}

c++程序求帮编写

#include
#include
#include
#include
#include
usingnamespacestd;
typedefstructStudent
{
unsignedlongid;
charname[36];
floatscore;
structStudent*next;
}node;
node*createlink()
{
node*head=(node*)malloc(sizeof(node));
ifstreamifile("CPP_Score.txt");
stringline;
stringstr2,str3,str4;
node*p;
node*q;
p=q=head;
while(std::getline(ifile,line)){
q=(node*)malloc(sizeof(node));
std::cout< istringstreamis(line);
is>>str2>>str3>>str4;
strcpy(q->name,str2.c_str());
q->id=stoi(str3);
q->score=stof(str4);
p->next=q;
p=q;
}
returnhead;
}
intmain()
{
node*head;
intn;
head=createlink();
while(cin>>n&&n!=0){
node*t=head;
while(t){
if(t->id==n){
cout<name<<""<score< break;
}
if(t->next==NULL){
cout<<"NOTFOUND"< }
t=t->next;
}
}
system("pause");
return0;
}

cpp_score.txt

张三 100001 88

李四 100002 77

王五 100003 66

求大佬帮编写一个C语言程序

这个问题吧,关键是算法,还有那个“利用一次关系运算结果真假算一次”,那么每个for循环算不算一次?如果知道是固定8个还好,不固定的话,肯定要循环调用。我试着使用了递归来计算,递归的开头就需要判断一下是不是只有1个数了,那么这个判断if (n==1)是否算一次?

我的思路是这样的,取第一个数为“伪”基准值,然后把N个数分2半,两半均等(偶数个)或前一半少1个数(奇数个)。把前半部分n个数加起来,与基准数*n进行比较,如果相等,则问题数在第2部分。否则问题数在第1部分,同时从非问题数那部分取一个数作为基准数,这样递归判断有问题的那部分,直到只有1个数了,就是问题数。

输入:11111211
次数基准数需要判断的数比较结果下一次判断
11111112111+1+1+1==1*4真1211
2112111+2==1*2假12
31121=1*1真2
412只有一个数,直接返回

这种算法说起来,也没啥效率,如果只有8个数的话,不用递归,不判断是否只有1个数,if...then...else用3次判断出结果即可。

因为没啥效率,而且如果if (n==1)也算一次的话,该判断可以改成if (a[0] == 基准数),这样的话,如果输入是1 1 1 1 2 1 1 1的话,第2次递归就能返回了。

总的来说程序很无趣,钻题目的空子,所以源程序就不帖了。


标签:信息技术 编程语言 编程 C(编程语言) CC++

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved.