c语言问题。。急!!
发布网友
发布时间:2022-04-20 03:58
我来回答
共3个回答
热心网友
时间:2023-09-10 18:19
思路:
1、根据题意每天从区间1~N中,依次深度-1,遇到某个深度0时停止作业,所修改的区间就是当日作业区间。
2、独立函数实现一天作业(workForDay)。参数flag为1显示作业过程,如不需要传0。
3、init函数为输入并返回动态数组。
#include <stdio.h>
#include <malloc.h>
int len=0;//路面长度
int *init();//根据输入初始化深度数组,成功返回地址,失败返回NULL
int workForDay(int *dps,int flag);//执行一天填充作业。成功作业返回1,无需作业返回0, 异常返回-1
//flag=1,打印输出作业过程。flag=0,不打印过程
int main()
{
int day=0,re,*dps=NULL;
dps=init();
if(!dps) return 1;
while((re=workForDay(dps,1))==1)
day++;
if(re==-1) return 1;
printf("共作业%d天\n",day);
free(dps);dps=NULL;//在本程序可不释放,但如果多次调用init函数,每次用完数组,需这样释放内存。
return 0;
}
int *init()
{
int i,*dps=NULL;//dps每单位长度对应深度
len=0;
while(len<=0) scanf("%d",&len);//长度必须大于0整数
dps=(int *)malloc(sizeof(int)*len);
if(!dps) return NULL;
for(i=0;(dps[i]=-1) && i<len;i++)
while(dps[i]<0) scanf("%d",&dps[i]);//每个深度必须大于等于0整数
return dps;
}
int workForDay(int *dps,int flag)
{
int i,bn=-1,an=-1;
if(!dps) return -1;
for(i=0;i<len;i++)
{
if(bn==-1 && dps[i]>0)
bn=i+1,an=bn,dps[i]--;
else if(bn!=-1 && dps[i]>0)
an=i+1,dps[i]--;
else if(bn!=-1 && dps[i]==0)
break;
}
if(bn==-1) return 0;
if(flag) printf("当日作业区间为[%d,%d]\n",bn,an);
return 1;
}
热心网友
时间:2023-09-10 18:20
//这应该是用贪心,我以前好像写过这个题,好像是洛谷的题
#include<stdio.h>
#define N 100010
int a[N];
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
long long sum = a[0];
for (int i = 1; i < n; i++) {
if (a[i] > a[i - 1]) {
sum += a[i] - a[i - 1];
}
}
printf("%lld", sum);
return 0;
}
热心网友
时间:2023-09-10 18:20
#include <stdio.h>
#include<stdlib.h>
#include <malloc.h>
#pragma warning(disable:4996)
unsigned int len = 1;//路面长度
unsigned int day = 0;
void init(unsigned int* dps);//根据输入初始化深度数组,成功返回地址,失败返回NULL
int workForDay(unsigned int* dps, int flag);//执行一天填充作业。成功作业返回1,无需作业返回0, 异常返回-1
//flag=1,打印输出作业过程。flag=0,不打印过程
int main()
{
unsigned int re, * dps = NULL;
scanf("%u", &len);//长度必须大于0整数
dps = (unsigned int*)malloc(sizeof(unsigned int) * len);
init(dps);
while ((re = workForDay(dps, 1)) == 1)
day++;
if (re == -1) return 1;
printf("共作业%u天\n", day);
free(dps);
dps = NULL;//在本程序可不释放,但如果多次调用init函数,每次用完数组,需这样释放内存。
return 0;
}
void init(unsigned int* dps )
{
unsigned int i;
for (i = 0; i < len; i++)
{
scanf("%u", &dps[i]);//每个深度必须大于等于0整数
}
}
int workForDay(unsigned int* dps, int flag)
{
unsigned int i;
int bn = -1, an = -1;
if (!dps) return -1;
for (i = 0; i < len; i++)
{
if (bn == -1 && dps[i] > 0)
{
bn = i + 1;
an = bn;
dps[i]--;
}
else if (bn != -1 && dps[i] > 0)
{
an = i + 1;
dps[i]--;
}
else if (bn != -1 && dps[i] == 0)
break;
}
if (bn == -1) return 0;
if (flag) printf("第%u日作业区间为[%d,%d]\n",day+1, bn, an);
return 1;
}
c语言的问题。。。急!!!
int c = 0;//初始化所有数之和 如果a[i]%2 == 0,c+=a[i];否则:a++,b+=a[i],c+=a[i];最后:奇数的平均值就是:b/a 偶数的平均值是:(c-b)/(n-a)
请教几个简单的C语言问题!急!在线等!
3.4f表示按宽度为3精度为4的单精度浮点型输出。%05d或%.5d表示按宽度为5的整型输出,实际位数少于定义的宽度则在前面补以0。printf("%03d",34)编译运行输出结果为034 其中的0不是针对8进制数,而是表示实际位数少于定义的宽度则在前面补以0。对于单双精度实数%0n1.n2f等同于%n1.n2f.2、pr...
C语言作业,急急急求解答
这个问题可能是由于软件代码中存在大量的冗余、重复计算或者低效算法等因素导致的。另外,如果软件需要加载大量的数据或者进行网络连接,则也会影响其启动速度。解决方案:为了解决这个问题,我们可以从以下几个方面入手:1.优化程序代码:检查程序中是否存在冗余、重复计算或者低效算法等因素,对代码进行优化和精...
c语言问题!!!急!!!
include<stdio.h> include<stdlib.h> include void main(void){ int count=0; //计数器 int num1,num2; //操作数1和操作数2 int oper; //运算符 int ans; //输入的答案 srand( (unsigned)time( NULL ) );while(count<10){ num1=(int)(10*rand()/(RAND_MAX+1.0)); ...
C语言高手帮忙啊!急!!!
;while(p!=NULL){ printf("%d,",p->data);p=p->next;} } void main(){ linklist *L;L=CREAT();LENGTH(L);OUT(L);} 该程序在turboc2.0上运行成功。顺便说一下:其实我这学期刚学《数据结构》,我想你也应该在学这门课吧,不知道可否交个朋友,以后好互相讨教。QQ:729430705 ...
C语言结构体与链表问题【急】【急】【急】【急】【急】【急】【急...
首先回答第一个问题,程序当中存在以下这几个问题:(1) char name[ ]中的数组name没有指定大小,此处可以定义为name[20](2) p = stu也有错误,应该将结构体的首地址赋给指针p,从而使p指向该结构体。正确的写法是:p = &stu;(3) (*p).name = "Mary"也有错误,此处不能这么赋值。正确的...
c语言问题求写程序 急!!!急!!!
include <stdio.h> main(){ int num,g,s,b;scanf("%d",&num);if(num<100||num>999)printf("error!\n");else { g=num%10;s=num/10%10;b=num/100;printf("%d %d %d\n",g,s,b);} }
C语言问题求解,在线等,急!!!
1、根据题意每天从区间1~N中,依次深度-1,遇到某个深度0时停止作业,所修改的区间就是当日作业区间。2、独立函数实现一天作业(workForDay)。参数flag为1显示作业过程,如不需要传0。3、init函数为输入并返回动态数组。include <stdio.h> include <malloc.h> int len=0;//路面长度 int *init(...
C语言问题。。。急 char *ss[6];ss[1]="right?" char ss[6][20];ss...
c语法不允许char ss[20];ss[20]="hello",但是允许在声明的时候就初始化即char ss[20]="hello"。可以理解了吧。2.结构体名字就和int 类似都是一样类型,用来定义变量的,不是什么地址。首先我猜想你所说的结构大概是:struct A { char sex;int age;char name[10];、、、} struct A *ps/...
C语言问题呀!!急呀1高手快点帮帮忙呀!
if(i*i+j*j*(float)c*c==0)//这句是新加的 continue;//这句是新加的 避免分母为0 if((i+j)%2==0){ if(abs(i)%2==0)s=1;else s=-1;//if (i==0)//continue;//这两句应该去掉 m=m+s/sqrt((i*i+j*j*(float)c*c)/(1+(float)c*c));} //else //continue;//...