c语言程序设计 求解 急急急

C语言编程求解完整答案 急急急_百度知道
C语言编程求解完整答案 急急急
Description光头强又来啦。。这次他不是找熊大和熊二,他是去抓袋鼠,可怜的袋鼠们要面临麻烦了。。。现在有n只袋鼠在草坪上玩,突然他们发现光头强正拿着枪对着它们。它们要想办法让袋鼠们尽可能少的暴露在外面,即把其他的袋鼠穿在自己的袋子里,再逃跑。已知每次袋鼠只能装下一只袋鼠,且这只袋鼠的体积不能超过它的一半。现在请你帮它们算算,最多可以使多少袋鼠隐藏起来。 Input第一行一个整数,表示袋鼠的数量。第二行n个数,表示每只袋鼠的体积。Output输出最多少袋鼠可以被其他的袋鼠装下。Sample Input82 5 7 6 9 8 4 2Sample Output3Hint一只袋鼠如果装在其他的袋鼠内,它就不能在装袋鼠了。样例中,体积为2,2,4的袋鼠可以被装在体积为9,7,8的袋鼠中。n的范围[1,5000],袋鼠的体积不超过109
提问者采纳
思路 8 个数;从小到大排列;从中间切开; 1 2 3 4 -& 5 6 7 8;然后一个一个比较符合就加一试了一下....#include&stdio.h&#define&L&15000int&main(void){&&&&short&dais[L]=&{0};&&&&int&zhin,&i;&&&&scanf(&%d&,&&zhin);&&&&for(i=0;&i&&i++)&&&&&&&&scanf(&%hd&,&&dais[i]);&&&&int&tmp,&j;&&&&for(i=0;&i&&i++)&{&&&&&&&&tmp=dais[i];&&&&&&&&for(j=i+1;&j&&j++)&{&&&&&&&&&&&&if(dais[j]&tmp)&{&&&&&&&&&&&&&&&&dais[i]=dais[j];&&&&&&&&&&&&&&&&dais[j]=&&&&&&&&&&&&&&&&tmp=dais[i];&&&&&&&&&&&&}&&&&&&&&}&&&&}&&&&int&yin=0;&&&&for(i=zhin-1;&i&=zhin/2;&i--)&{&&&&&&&&for(j=zhin/2;&j&0;&j--)&&&&&&&&&&&&if((2*dais[j-1]&=dais[i])&&(dais[j-1]!=0))&{&&&&&&&&&&&&&&&&dais[i]=0;&&&&&&&&&&&&&&&&dais[j-1]=0;&&&&&&&&&&&&&&&&&&&&&&&&&&yin++;&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&}&&&&printf(&%d&,&yin);&&&&return&0;}
提问者评价
其他类似问题
为您推荐:
其他2条回答
//刚写的,测试通过,如果有疑问,欢迎交流//思路:假设对于给定的数列,结果是m,&那么这个数列中,最小的m个数和最大的m个数//一定是可以通过组合,满足这个结果的//用ans保存最后的结果&初始化为0//那么就可以先排序,然后定义l指向开头,r指向n/2,在遇到满足的条件的一对时//l++,&r++,&ans++//否则只r++#include&stdio.h&#include&stdlib.h&int&compare(const&void&*a,&const&void&*b){ return&*((int*)a)&-&*((int*)b);}int&main(){ int&n; scanf(&%d&,&&n); int&*tar&=&(int*)malloc(sizeof(int)&*&n); for(int&i&=&0;&i&n;&i++)
scanf(&%d&,&&tar[i]); qsort(tar,&n,&sizeof(int),compare); int&ans&=&0; int&l&=&0; int&r&=&n/2; for(;r&n;r++){
if(2*tar[l]&&=&tar[r]){
} } printf(&%d\n&,ans); return&0;}
明天给你答案。
c语言编程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言程序求大神指导!!!急急急!!!_百度知道
C语言程序求大神指导!!!急急急!!!
原题:函数Elect()模拟产生选票数据保存在文件IN.DAT中,选票数据保存的是一个10个人100行的选票记录,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个的选中情况,第二位表示第二个人的选中情况,依此类推,内容均为字符0和1(1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票);函数READDAT()的功能是把选票数据读入到字符串数组s中;制函数COUNTRS()来统计每个人的选票数并把票数依次存入YY[0]到YY[9]中;函数WRITEDAT()把结果YY输出到OUT.DAT文件中。main()函数中调用以上函数。我的程序:#include &stdio.h&char
s[100][11];int
YY[10];int ReadDat(void);void WriteDat(void);void CountRs(void) { int i,j, for(i=0;i&100;i++) { count=0;
for(j=0;j&10;j++)
if(s[i][j]=='1') count++;
if(count==0||count==10)
for(j=0;j&10;j++)
if(s[i][j]=='1') YY[j]++; }}void main(){ for (i=0; i&10; i++) YY[i] = 0; if (ReadDat()) {
printf(&选票数据文件IN.DAT不能打开!\n\007&); } CountRs(); WriteDat();}int ReadDat(void){ FILE
* if ((fp = fopen(&IN.DAT&, &r&)) == NULL)
return 1; for (i=0; i&100; i++) {
if (fgets(s[i], 12, fp) == NULL)
s[i][10] = '\0'; } fclose(fp); return 0;}void WriteDat(void){ FILE
* fp = fopen(&OUT.DAT&, &w&); for (i=0; i&10; i++) {
fprintf(fp, &%d\n&,YY[i]);
printf(&第%d个人的选票数=%d\n&, i+1, YY[i]); } fclose(fp);}请问用函数Elect()模拟产生选票数据保存在文件IN.DAT中怎么写???
我的程序运行没错误了,但是函数Elect()模拟产生选票数据保存在文件IN.DAT中不知道怎么弄??求指导!
提问者采纳
用sprintf()这个函数写到文件,不是用printf
请问用函数Elect()模拟产生选票数据保存在文件IN.DAT中这个怎么弄?谢谢了
什么意思???这个函数是你自定义的函数吗?????void Elect(){ int cStr[10]; const max=9,line=100; int i,j=0; FILE *
file=fopen(&in.dat&,&w&);
randomize(); do { for (i=0;i&=i++) {
cStr[i]=(random(100)/2);
for (i=0;i&=i++)
fprintf(file,&%d&,cStr[i]);
fprintf(file,&\n&); }while (j&=100); fclose(file);}这是不是你想要的????我不太明白,就根据你的题干写的。
是的,函数是自己定义的,谢谢了
提问者评价
来自团队:
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言程序问题 求高手 急急急急急!!!!!_百度知道
C语言程序问题 求高手 急急急急急!!!!!
问题:输入一个英文句子,统计其中所含英文单词(由纯英文字母构成)的个数ch:句子中当前要处理的字符inword:尚未遇到新单词时为0,遇到新单词而且该单词尚未结束时为1count:单词数量#include &stdio.h&int main ( ){int count=0,inword=0;printf(&请输入英文句子:\n&);
while ( (ch=getchar())!='\n' ){ if ( ch&='A'&&ch&='Z'||ch&='a'&& ch&='z') inword=1; else
if (inword+=1)
count++;}printf(&\nNumber of count=%d&,count);getchar();printf(&\nEnd!&);return 0;}没有错误和警告,单运行后输入英文句子后输出的不是单词的个数而是英文字母和非英文字符的个数之和,怎么回事啊???????
提问者采纳
问题并不是出在if (inword==1)
count++ ,作者的整个程序是碰到一个字母字符count都会累加,结果当然不会对,要判断连续的单词字符才形成单词。
程序应该修改如下:#include &stdio.h&int main ( ){
int count=0,inword=0;
int flag = 0; //为了判断输入的字符是否连续,用以判断连续的字母即为一个单词
printf(&请输入英文句子:\n&);
while ( (ch=getchar())!='\n' )
if ( ch&='A'&&ch&='Z'||ch&='a'&& ch&='z')
if(flag == 0 && inword&1)
//最后一个单词后回车的判断,即通过iword的值还没有被清零
if (inword&0)
printf(&\nNumber of count=%d&,count);
getchar();
printf(&\nEnd!&);
return 0;}
提问者评价
其他类似问题
#include &stdio.h&int main ( ){int count=0,inword=0;printf(&请输入英文句子:\n&);while ( (ch=getchar())!='\n' ){if ( ch&='A'&&ch&='Z'||ch&='a'&& ch&='z')inword=1;else inword=0;if (inword+=1)
count++;/////////////////////////////////////////////////inword==1}printf(&\nNumber of count=%d&,count);getchar();printf(&\nEnd!&);return 0;}
为您推荐:
其他2条回答
好吧 我刚才的回答是错的 问题就出在if (inword+=1)
count++;上,inword+=1是运算表达式,改为if (inword==0) count++;结果就应该是正确的
把if (inword+=1)
改成if (inword==1)
c语言程序的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁c语言,求大神啊,在线等急急急,马上要交了,答案正确满意直接给了,第四题_百度知道
#include&stdio.h&main(){
printf(&输入一个字母\n&);
scanf(&%c&,&c);
printf(&对应阿斯科马为:%d\n&,c);}
其他类似问题
为您推荐:
其他4条回答
你同学问过了#include&stdio.h&int main(){
float c=0;
printf(&输入一个摄氏度\n&);
scanf(&%f&,&c);
printf(&对应华氏度为:%.2f\n&,9/5*c+32);}
是第四题,啊是温度的
#include&stdio.h&int main(){
printf(&输入摄氏温度:\n&);
scanf(&%lf&,&c);
printf(&华氏温度=%.2lf\n&,9/5*c+3);
return 0;}
#include&stdio.h&int main(){
float C=0;
printf(&输入一个华氏温度\n&);
scanf(&%f&,&C);
printf(&对应华氏度为:%.2f\n&,9/5*C+32);}
#include&stdio.h&main(){ char a,b,c; printf(&请输入字符:\n&); scanf(&%c,%c,%c&,&a,&b,&c); printf(&%c的ASCII码值为:%d,对应大写字母为:%c\n&,a,a,a-32); printf(&%c的ASCII码值为:%d,对应大写字母为:%c\n&,b,b,b-32); printf(&%c的ASCII码值为:%d,对应大写字母为:%c\n&,c,c,c-32);}注意输入时用逗号隔开
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言编程软件 的文章

 

随机推荐