c语言for和if语句结合在一起时的问题
答案:3 悬赏:40
解决时间 2021-02-15 09:48
- 提问者网友:几叶到寒
- 2021-02-15 01:22
c语言for和if语句结合在一起时的问题
最佳答案
- 二级知识专家网友:逐風
- 2021-02-15 01:56
你的for循环只有一层循环,是无法排序的,for循环中if没有跳出语句,所以不算控制for循环
下面修改了一下:
#include
#define SIZE 10
int main(void)
{
int hold;
int a[SIZE];
int i;
int j;
int k;
下面修改了一下:
#include
#define SIZE 10
int main(void)
{
int hold;
int a[SIZE];
int i;
int j;
int k;
printf("please input ten numbers:
");for(i=0;i
for(int i = 0; i < SIZE - 1; i++)
{
for(j=0;j
{
hold=a[j];
a[j]=a[j+1];
a[j+1]=hold;
}
}
for(k=0;k
puts("");
}
测试:
全部回答
- 1楼网友:白昼之月
- 2021-02-15 04:11
//-------------------
int hold;
int a[SIZE];
int i,j,k;
printf("please input ten numbers:\n");
for(i=0;i<SIZE;i++)
scanf("%d",&a[i]);
for(j=0;j<SIZE-1;j++) {
for(i=0;i<SIZE-1-j;i++) {
if(a[i]>a[i+1])
{
hold=a[i];
a[i]=a[i+1];
a[i+1]=hold;
}
}
}
for(k=0;k<SIZE;k++){
printf("%d",a[k]);
//puts("");
}
//-----------
int hold;
int a[SIZE];
int i,j,k;
printf("please input ten numbers:\n");
for(i=0;i<SIZE;i++)
scanf("%d",&a[i]);
for(j=0;j<SIZE-1;j++) {
for(i=0;i<SIZE-1-j;i++) {
if(a[i]>a[i+1])
{
hold=a[i];
a[i]=a[i+1];
a[i+1]=hold;
}
}
}
for(k=0;k<SIZE;k++){
printf("%d",a[k]);
//puts("");
}
//-----------
- 2楼网友:行雁书
- 2021-02-15 02:40
如果输入的是1 2 3 4 5 6 7 8 9 10的话,输出的结果应该是2 3 4 5 6 7 8 9 10 1
如果你想从大到小排序的话,通过这种简单的两两比较大小,至少要用两个for循环
#include<stdio.h>
#include<Windows.h>//包含这个头文件可以调用system("pause");
#define SIZE 10
int main(void)
{
int hold;
int a[SIZE];
int i,j,k,l;
printf("please input ten numbers:\n");
for(i=0;i<SIZE;i++)
scanf("%d",&a[i]);
for(j=0;j<SIZE;j++)
{
for(l=0;l<SIZE-j;l++)
if (a[l+1]>a[l])
{
hold=a[l];
a[l]=a[l+1];
a[l+1]=hold;
}
}
for(k=0;k<SIZE;k++)
printf("%d",a[k]);
system("pause");
}
这样程序的输出结果就应该是10 9 8 7 6 5 4 3 2 1了
如果你想从大到小排序的话,通过这种简单的两两比较大小,至少要用两个for循环
#include<stdio.h>
#include<Windows.h>//包含这个头文件可以调用system("pause");
#define SIZE 10
int main(void)
{
int hold;
int a[SIZE];
int i,j,k,l;
printf("please input ten numbers:\n");
for(i=0;i<SIZE;i++)
scanf("%d",&a[i]);
for(j=0;j<SIZE;j++)
{
for(l=0;l<SIZE-j;l++)
if (a[l+1]>a[l])
{
hold=a[l];
a[l]=a[l+1];
a[l+1]=hold;
}
}
for(k=0;k<SIZE;k++)
printf("%d",a[k]);
system("pause");
}
这样程序的输出结果就应该是10 9 8 7 6 5 4 3 2 1了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯