问一道C语言编程的问题,看下图

作者&投稿:刀斧 (若有异议请与网页底部的电邮联系)
关于c语言的一个简单排序问题,看下图,为什么要用2个for循环,而且还要用a[i]和a[k]两种数~

a[i],a[k]并不是两个数组,这里只有数组a,i、k都是数组的下标,用来取数组内的值
两次循环的功能分别是:
1,用i的递增依次取数组内的值(从头开始到最后)
2,用k的递增依次取i之后的值(从i+1开始到最后)
这个排序算法的思想就是,默认将第一个数设为最小值,用其后的每一个数与最小数作比较,如果该数比最小值小,则两数交换位置,两次循环完毕,从左到右就完成了递增排序

#include
int max(int,int);

void main()
{
int(*p)(int,int);
int a,b,c;
p=max;
scanf("%d,%d",&a,&b);
c=(*p)(a,b);
printf("%d",c);
printf("
");
}
int max(int x,int y)
{
int z;
z=(x>y)?x:y;
return z;
}

按你的提问,每天都吃一半多两个,第6天剩一个。程序按图片中的程序照猫画虎即可。计算结果,第一天摘了156个桃子,而不是100个。

#include <stdio.h>
int main()
{
int day,x1,x2;
day=5;
x2=1;
while(day>0)
{x1=(x2+2)*2;
x2=x1;
day--;
}
printf("total=%d
",x1);
return 0;
}

用数学方法按天推算了一下,是156个,无误。



#include "stdio.h"
int main(int argc,char *argv[]){
printf("The monkey picked %d peaches on the first day.
",(((((1+1)*2+1)*2+1)*2+2)*2+2)*2);
return 0;
}

运行结果:

若想多写点代码,那就如下写——

int main(int argc,char *argv[]){
int s,i,t;
for(s=t=1,i=0;i<5;i++){
(s+=t)+=s;
if(i==2)
t=2;
}
printf("The monkey picked %d peaches on the first day.
",s);
return 0;
}


#include<stdio.h>
int main()
{ int x=1,n;
  for(n=9; n>0; n--)
    x=(x+1)*2;
  printf("%d
",x);
  return 0;
}


逆运算:第六天的时候剩一个,那么可以得到,第五天就是(1+1)*2=4;第四天就是:(4+1)*2=10个,第3天 (10+1)*2=22;第二天;(22+2)*2=48;第一天,(48+2)*2=100个;
int x=1,i;
for(i=1;i<=6;i++)//如果是10天剩一个的话,就把6改成10;
{
if(i<=2){计算1,2天的,
x=(x+2)*2;
}
else if(i>2){//计算后面四天的
x=(x+1)*2;
}
}
printf("第一天一共栽了%d个",x);

#include <cstdio>

int all(int n,int left){
if(n==2) return 2*(left+2);
if(n==3) return all(n-1,2*(left+2));
return all(n-1,2*(left+1));
}//参数表示第n天还剩left个桃子

int main(){
printf("%d",all(6,1));
}



求助一道C语言编程问题
int main(void){ int x[21];int i,j;x[1]=1;x[2]=1;for(i=3;i<21;i++)x[i]=x[i-2]+x[i-1];for(i=1;i<21;i++){ printf("%d ",x[i]);if(i%4==0)printf("\\n");} return 0;}

一道C语言编程问题求解,新手求帮助!
include <stdio.h>double Sum2(){ double result =0; double a=1,temp=1;\/\/分母和当前项变量 int index=1; do { temp = 1\/a;\/\/当前项 result += temp;\/\/累加结果 a = a*index;\/\/更新分母 index++; }while(temp>=1e-5 || temp<=-1e-5); ...

一道C语言编程问题
首先说一下这个程序的设计思路。函数int inner(int X[] , int Y[], int size)的意思应该是计算这n对数的内部乘的和,其中int x[],int y[]这两个参数的含义是两个数组名,int size是这两个数组的大小。既然每对数保存在相应的x[i]和y[i]中,那么声明一个POINT类型的结构就是多些一举了。

一道C语言的编程题,兔子洞的问题。
int main(){ \/\/Hole表示20个三洞 ,Hole【21】是为了数组下标从1开始,方便对题目的理解 \/\/初始化为0,表示还没有被 灰狼搜索 int Hole[21] = {0};int i = 1,j;\/\/进行15次循环,表示灰狼搜索了15次 for(j = 1; j <= 15; j++){ Hole[i] = 1; \/\/将洞i设为1,表示编号为...

c语言编程问题!
c语言编程问题!1.编程在一个已知字符串中查找最长单词,假定字符串中只含有字母和空格,空格用来分割不同单词!2.编写实现任意十进制数,转换成r进制数(r在2到16之间)3.从键盘输入一个金额(如345... 1.编程在一个已知字符串中查找最长单词,假定字符串中只含有字母和空格,空格用来分割不同单词!2.编写实现任意十...

问一道C语言编程的问题,看下图
程序按图片中的程序照猫画虎即可。计算结果,第一天摘了156个桃子,而不是100个。include <stdio.h>int main(){int day,x1,x2;day=5;x2=1;while(day>0){x1=(x2+2)*2;x2=x1;day--;}printf("total=%d\\n",x1);return 0;} 用数学方法按天推算了一下,是156个,无误。

一道关于c语言编程的问题
a[i++]=*a;这句,由于指针a的值是变化的,所以这里有问题 应该在一开始定义一个存储a指针初值的temp指针,且temp指针时钟不变化 之后的a[i++]和a[i]改为对应的temp即可

一道c语言的题目
解释如下:int k,j,s;for (k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++) s+=j;} printf("%d\\n",s);第一次循环:for (k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++) s+=j;} 执行执行过程为:k=2<6,s=1,j=k=2<6,执行s+=j即s=s+j=1+2=3,此时执行for(j=k...

c语言简单编程的问题,如图中思考题
第一问:不可以,当输入的数字不在1到12之间的时候,程序会不出现结果,因此需要加一句default语句作为提示输入出错,加加switch语句的最后。

一道c语言编程问题
sizeof是操作符,返回的是系统为变量或类型分配的空间大小,和有没有存储数据无关。而strlen是库函数,参数必须为字符串指针或字符串常量,返回的是对象中'\\0'前的字符个数,并且不包含'\\0'。

洪湖市13579543408: 一道c语言编程题!打印出以下图案: -
并恒三七: #include void line1(int n){ for(int m=0;mprintf(" "); } void line2(int n){ for(int j=0;jprintf("* "); printf("\n"); } void main(){ for(int i=0;;i++){ int k=7; if(i==1) k=6; for(int n=1;nline1(12-n); line2(n); } if(i==1) break; k=6; for(;k>0;k--){ line1(12-k); line2(k); } } line2(7); } 采纳我的吧 绝对 正确

洪湖市13579543408: c语言问题,如图所示 -
并恒三七: 你的代码没问题,个人测试代码如下,其实你在最后加32是多余行为,你的遍历根本无法到达最后的32元素.因此if的语句也是有多余的. char ii[299];int c=0,y; while(c==0) { memset(ii,'\0',299); gets(ii); int p=strlen(ii); ii[p]=32; for(y=0;y { if((ii[y]'9')&&ii[y]!=32) { printf("adad"); break; } else c++; } } return 0;

洪湖市13579543408: 一道C的编程问题:打印以下图案:跪求高手帮忙!!!(最好用循环语句) -
并恒三七: main() {int i,j,k,m,n; for(i=1;i<=7;i++) { if (i<=4) {k=2*i-1;m=4-i;} else {k=2*(7-i)+1;m=i-4;} for(n=1;n<=m;n++) printf(" "); //这里是空格 for(j=1;j<=k;j++) printf("*"); printf("\n"); } } 这个程序用了循环的嵌套,是把图案作为一个整体设计的,不提倡把图案分成两部分来做,没作调试,多年不用了,请自行调试,祝好运

洪湖市13579543408: c语言编程问题:打印出如下图形: -
并恒三七: #include <stdio.h> int main(void) {int i,j,k;for(i=1;i<=5;i++){for(k=1;k<=i-1;k++){ //计算空格数量(跟行数有关,比行数小1)printf(" ");}for(j=1;j<=5;j++){ //输出*printf("*");}printf("\n");}return 0; }

洪湖市13579543408: 请高人解答c语言问题 如下 打印出以下图案 * * * * * * * * * * * * * * * * * * * * * * * * * 编程 -
并恒三七: #include#define n 4 int main() { int i,j; for(i=0;i { for(j=1;j printf(" "); for(j=1;j printf("*"); printf("\n"); } }

洪湖市13579543408: 一道简单的C语言编程问题
并恒三七: int Sum(int a) { int i,sum=0; for(i=1;i<=a;i++) { sum=sum+i; } return sum; } int Chen(int a) { int i,sum=a; for(i=a-1;i>=1;i--) { sum=sum*i; } return sum; } main() { int a; printf("Please input a number."); scanf("%d",&a); printf("1+2+...+n=%d,n!=%d",Sum(a),Chen(a)); getch(); } 我的原创哦~ 编译通过了的~ O(∩_∩)O哈哈~

洪湖市13579543408: 一道C语言编程题 -
并恒三七: main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf(" ");for(k=0;k<2*i;k++)printf("*");printf("\n");}for(i=0;i<=2;i++){for(j=0;j...

洪湖市13579543408: 求一道C语言编程题 -
并恒三七: #include<stdio.h> void main() { int i,j,k,m=0; for(i=1;i<30;i++) { for(j=1;j<75;j++) { for(k=1;k<101;k++) { if(5*i+2*j+k==150&&i+j+k<=100) { m++; printf("第%d种方案:",m); printf("兑换5分%d个、2分%d个和1分%d个的硬币\n",i,j,k); } } } } }

洪湖市13579543408: 一个C语言编程的问题 -
并恒三七: 你的代码错误原因是你的name是一个char型的,你要输入的是一个名字,名字是字符串,要用字符数组来存,你把开始的char name ;改成char name[20];就行了.另外return上面的getch()函数在头文件conio.h里面,不在stdio.h里面,所以你可以在最前面前面写上一个#include或者你可以直接把getch()删掉

洪湖市13579543408: 请问一道c 语言的题? -
并恒三七: 选A void main() { int a=100,x=10,y=20,ok1=5,ok2=0; if(x<y) //显然x<y// if(y!=10) //因为上一个IF条件满足,所以执行语此语 句,值为真// if(!ok1) //if(!ok1)就是if(ok1!=0),值为真// a=1; else //对应的是if(!ok1)// if(ok2) //因为前面为真,所以不执行// a=10; //if语句后若没有大括号,只执行分号结束前的语句,所以只有a=10是if(ok2)的函数体// a=1; //执行// printf(“%d\n”,a); //打印a的值// } 上面说的应该比较清楚了吧,希望能看懂.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网