注:文章内容来源于网络,真实性有待确认,请自行甄别。
为什么会输出这样的结果?输入10个整数,按升序排列.我打的程序如
发表于:2024-10-24 00:00:00浏览:5次
问题描述:输入10个整数,按升序排列.我打的如下:
#include<iostream.h>
void main()
{ int i,j,k,n,a[10];
for(n=0;n<10;n++)
{
cin>>a[n];
}
for(k=10;k>=1;k--)
for(i=k;i>=1;i--)
{j=a[i-1];
if(a[i]<a[i-1])
j=a[i];}
cout<<j<<endl;
}
结果是只输出一个 1
为什么语句:输入10个整数,按升序排列.我打的如下:
#include<iostream.h>
void main()
{ int i,j,k,n,a[10];
for(n=0;n<10;n++)
{
cin>>a[n];
}
for(k=10;k>=1;k--)
for(i=k;i>=1;i--)
{j=a[i-1];
if(a[i]<a[i-1])
j=a[i];}
cout<<j<<endl;
}
结果是只输出一个 1
为什么语句:for(k=10;k>=1;k--)
没有起作用呢?
请各位高手帮帮忙~小第还是新手~
你的程序实际上输出的是a[0]与a[1]中较小的一个值,你就是在给j赋值输出的当然是一个了。下面的程序可以解决你的问题,其实编程时要是尽量用最少的变量,增加程序的可读性。
#include
void main()
{
int i,j,temp,a[10];
for(i=0;i<10;i++)
cin>>a[i];
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]
猜你喜欢
- 提问c++的问题#include"iostream.h"void
- #include"tream.h" void main() {int k=0; char c='A'; do{switch(c++) {case'A':k++;break; case'B':k--; case'C':k+=2;break; case'D':k=k%2;continue; case'E':k=k*10;break; /3;} k++;} while(c<'G');cout<<"k=...
栏目分类全部>