问个C++的程序

问个C++的程序,第1张

#include<iostream>

using namespace std;

int main()

{

int n,i,j,k,a[10001],t,m,g[10001],l,q,r;

cin>>n>>m;

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

cin>>a[i];//这个是给数组a[]赋值

for(l=1;l<=m;l++)

{

j=n-1; //给j赋值为n-1

q=n;

while(a[j]>a[j+1]&&j>=0) j--;//找到一个位置 一个前面的数大于后面数的地方跳出

for(i=j+1;i<n;i++)//=n的时候会越界 所以要改了

if((a[i]-a[j]<q)&&(a[i]-a[j]>0))

{

q=a[i]-a[j];r=i;//这是在找一个位置 找到a[j]大于前面小于后面的位置

} //然后这个位置值 赋给了r 通过r传递下去

t=a[r];

a[r]=a[j];//这里三步就是 把刚刚的 a[j]和 a[r]值对换

a[j]=t;

for(i=j+1;i<=j+(n-j)/2;i++)

{//这一段要改

t=a[i];

a[i]=a[n+j+1-i];//这里很明显会导致越界 越界可是个不好的错误哦

a[n+j+1-i]=t;//看到这里时 我凌乱了 因为我不清楚这几句表达的意思了

}

}

for(i=1;i<=n-1;i++)

cout<<a[i]<<" ";

cout<<a[n]<<endl;

//system("pause");

return 0;

}

这个 你要是 不知道 我凌乱的地方表达的意思 我可以帮你 再分析 显然 要加分 呵呵

#include<stdioh>

fun(s, n1, n2)

int s, n1, n2;//没有见过这样写的,c不是这样写的吧!!!!

{ int i, j, t;

i=n1; j=n2;

while(i<j)

{ t= (s+i); (s+i)= (s+j); (s+j)=t;

i++; j--;

}

}

main()

{ int a[10]={1,2,3,4,5,6,7,8,9,0},i, p=a;//这里a是多少呢? a是数组的起始地址

fun(p,0,3); //这个是没有返回值的,功能是把数组a中的0-3倒序一下,

//a 中的数据为4321567890

fun(p,4,9); //4-9倒序a中的数据为4321098765

fun(p,0,9);//这里的fun(p,0,3)是多少?//a 中的数据为5678901234

for(i=0; i<10; i++) printf(“%d”, (a+i));

//输出结果为5678901234

printf(“\n”);

}

c1=getchar(); //如果这里输入一个a然后回车,那么getchar()会把a接收,把回车留在缓冲区

c2=getchar(); //这个c2就没有机会输入,它会接收缓冲区的回车,于是c2=='\n', putchar(c2);就是输出一个换行

可以这样

c1=getchar();

getchar(); //读取缓冲区的回车

c2=getchar(); //现在这个可以输入了

以上就是关于问个C++的程序全部的内容,包括:问个C++的程序、问一个c语言程序的执行过程、问一个C语言简单程序!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9322624.html

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

发表评论

登录后才能评论

评论列表(0条)

保存