很奇怪的错误,我怎么都看不出来,高手指点一把,不胜感激!!!
呵呵,改好了。。。。//输入10个数字,冒泡排序。
#include<iostream.h>
void main()
{
int temp=0;
int n=0,m=0;
int a,b;
cout<<"bitte geben Sie 10 Zahlen!:"<<endl;
for(int i=0;i<10;i++)
{
cin>>a;
}
for(int j=0;j<10;j++)
{
for(int i=0;i<9-j;i++)
{
if(a>a)
{
temp=a;
a=a;
a=temp;
}
}
}
for(i=0;i<j-n;i++)
{
if(a!=a)
{
b=a;
m++;
}
}
cout<<"sortiert: "<<endl;
for(i=0;i<m;i++)
{
cout<<i<<": ";
cout<<b<<endl;
}
/*
for(i=0;i<10;i++)
{
if(a==a)
;
else
{
cout<<i<<"= ";
cout<<a<<endl;
}
}
*/
} #include <stdio.h>
void main ()
{
int a,i;
printf("Geben Sie 10 Zahle ein\n");
for (i=0;i<10;i++)
scanf("%d",&a);
int j,t;
for (i=0;i<10-1;i++)
{for (j=i+1;j<10;j++)
{if (a<a)
{t=a;
a=a;
a=t;
}
}
}
printf("die 10 Zahle in aufsteigender Reihefolge\n");
for (i=0;i<10;i++)
printf("%d\n",a);
}
oder
#include <stdio.h>void sort(int a[],int n)
{
int i,j,t;
for (i=0;i<n-1;i++)
{for (j=i+1;j<n;j++)
{if (a<a)
{t=a;
a=a;
a=t;
}
}
}
}
void main ()
{
int a,i;
printf("Geben Sie 10 Zahle ein\n");
for (i=0;i<10;i++)
scanf("%d",&a);
sort (a,10);
printf("die 10 Zahle in aufsteigender Reihefolge\n");
for (i=0;i<10;i++)
printf("%d\n",a);
} 你的比我想的要简单一些。
再请教一下。
如果可以得话,如何不计重复的数字? 缩短数组?
谢谢 #include <stdio.h>
void main ()
{
int a,i;
printf("Geben Sie 10 Zahle ein\n");
for (i=0;i<10;i++)
scanf("%d",&a);
---------------------------
int j,t;
int x=0;
for (i=0;i<10-1;i++)
{
loop: for (j=i+1;j<10;j++)
{if (a==a)
{
j+=j;
goto loop;
}
if (a<a)
{t=a;
a=a;
a=t;
x++;
}
}
}
printf("die 10 Zahle in aufsteigender Reihefolge\n");
for (i=0;i<x+1;i++)
printf("%d\n",a);
} guck mal, ob es richtig ist, ich weiss selber auch nicht genau... loop: for (j=i+1;j<10;j++)
{if (a==a)
{
j+=j; xxxxxxxxxxxxxxxxx
goto loop;
}
hier i+=1;oder? 有问题。。。。 nein, immer noch falsch 偶的想法是这样的。
数组元素a1,a2......a9.
如果a1=a2,那么a3的值赋给a2,依次类推,a9赋给a8,然后打印数组a1到a8。
实现的是出现了一个问题,没有办法解决,如果10个数字都相同,那么到最后一部,a1还是等于a2,,只打印1个a1,就容易错了。
请指教。
void main()
{
int temp=0;
int n=0;
int a;
for(int i=0;i<10;i++)
{
cin>>a;
}
for(int j=0;j<10;j++)
{
for(int i=0;i<9-j;i++)
{
if(a>a)
{
temp=a;
a=a;
a=temp;
}
}
}
for(j=0;j<10;j++)
for(i=0;i<j-n;i++)
{
if(a==a)
{
int m=i;
cout<<"J: "<<j<<" i=";
cout<<i<<" ";
for(i=m;i<8-m;i++)
{
a=a;
}
n++;
cout<<"J: "<<j<<" i=";
cout<<i<<" ";
cout<<"n: "<<n<<endl;
}
}
cout<<endl;
//这里没有办法,我只是打印出不重复的数字,而不是改变数组。
for(i=0;i<10;i++)
{
if(a==a)
;
else
{
cout<<i<<"= ";
cout<<a<<endl;
}
}
}