无法运行

佛系咸鱼en 2020-07-09 04:53:53
#include<stdio.h>
int main()
{
int a, b, c;
int s[100], p[100], q[100];
scanf_s("%d %d %d", &a, &b, &c);
for (int i = 0; i < a; i++)
{
scanf_s("%d", &s[i]);
int max1 = s[0];
for (int i = 0; i < a; i++)
{
for (int t = 0; t < a - i&&i+1<a; t++)
{
if (s[i] <= s[i + 1])
max1= s[i + 1];
s[i + 1] = s[i];
s[i] = max1;
}
}
}
for (int i = 0; i < a; i++)
{
printf("%d", s[i]);
}
return 0;
}
...全文
49 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
佛系咸鱼en 2020-07-09
  • 打赏
  • 举报
回复
引用 7 楼 自信男孩的回复:
[quote=引用 4 楼 佛系咸鱼en 的回复:][quote=引用 3 楼 自信男孩的回复:]
#include<stdio.h>
int main()
{
int a, b, c;
int s[100], p[100], q[100];

scanf_s("%d %d %d", &a, &b, &c);
if (a > 100)
a = 100;

for (int i = 0; i < a; i++)
{
scanf_s("%d", &s[i]);
}
int max1;
for (int i = 0; i < a; i++)
{
max1 = i;
//for (int t = i; t < a - i&&i+1<a; t++)
for (int t = i; t < a; t++)
{
if (s[max1] <= s[t])
max1 = t;

}
if (max1 != i) {
int tmp = s[i];
s[i] = s[max1];
s[max1] = tmp;
}
}
for (int i = 0; i < a; i++)
{
printf("%d", s[i]);
}
return 0;
}

供参考~

其实我想解决的并不是代码的问题,我自己的这个就写了出来也没运行,肯定会有问题,我想解决的是编译器报错的问题,当然也非常感谢你的解答。[/quote]
用我的版本还会报错吗?[/quote] 还是一样的报错,感觉是我的编译器出了问题,我卸了重安一下
佛系咸鱼en 2020-07-09
  • 打赏
  • 举报
回复
引用 7 楼 自信男孩的回复:
[quote=引用 4 楼 佛系咸鱼en 的回复:][quote=引用 3 楼 自信男孩的回复:]
#include<stdio.h>
int main()
{
int a, b, c;
int s[100], p[100], q[100];

scanf_s("%d %d %d", &a, &b, &c);
if (a > 100)
a = 100;

for (int i = 0; i < a; i++)
{
scanf_s("%d", &s[i]);
}
int max1;
for (int i = 0; i < a; i++)
{
max1 = i;
//for (int t = i; t < a - i&&i+1<a; t++)
for (int t = i; t < a; t++)
{
if (s[max1] <= s[t])
max1 = t;

}
if (max1 != i) {
int tmp = s[i];
s[i] = s[max1];
s[max1] = tmp;
}
}
for (int i = 0; i < a; i++)
{
printf("%d", s[i]);
}
return 0;
}

供参考~

其实我想解决的并不是代码的问题,我自己的这个就写了出来也没运行,肯定会有问题,我想解决的是编译器报错的问题,当然也非常感谢你的解答。[/quote]
用我的版本还会报错吗?[/quote] 我还没运行,待会我试一下
佛系咸鱼en 2020-07-09
  • 打赏
  • 举报
回复
引用 5 楼 Army_Adviser_的回复:
目测是你代码错误导致的 if (s[i] <= s[i + 1]) max1= s[i + 1]; s[i + 1] = s[i]; s[i] = max1; 这段少了括号把? 这样不会进入死循环吗? if (s[i] <= s[i + 1]){ max1= s[i + 1]; s[i + 1] = s[i]; s[i] = max1; }应该这样吧。。。 可以试一下
确实,我再改一下
自信男孩 2020-07-09
  • 打赏
  • 举报
回复
引用 4 楼 佛系咸鱼en 的回复:
[quote=引用 3 楼 自信男孩的回复:]
#include<stdio.h>
int main()
{
int a, b, c;
int s[100], p[100], q[100];

scanf_s("%d %d %d", &a, &b, &c);
if (a > 100)
a = 100;

for (int i = 0; i < a; i++)
{
scanf_s("%d", &s[i]);
}
int max1;
for (int i = 0; i < a; i++)
{
max1 = i;
//for (int t = i; t < a - i&&i+1<a; t++)
for (int t = i; t < a; t++)
{
if (s[max1] <= s[t])
max1 = t;

}
if (max1 != i) {
int tmp = s[i];
s[i] = s[max1];
s[max1] = tmp;
}
}
for (int i = 0; i < a; i++)
{
printf("%d", s[i]);
}
return 0;
}

供参考~

其实我想解决的并不是代码的问题,我自己的这个就写了出来也没运行,肯定会有问题,我想解决的是编译器报错的问题,当然也非常感谢你的解答。[/quote]
用我的版本还会报错吗?
一叶小舟_郭 2020-07-09
  • 打赏
  • 举报
回复
不建议在中文目录,这是用的默认项目目录?
李牧大将军 2020-07-09
  • 打赏
  • 举报
回复
目测是你代码错误导致的 if (s[i] <= s[i + 1]) max1= s[i + 1]; s[i + 1] = s[i]; s[i] = max1; 这段少了括号把? 这样不会进入死循环吗? if (s[i] <= s[i + 1]){ max1= s[i + 1]; s[i + 1] = s[i]; s[i] = max1; }应该这样吧。。。 可以试一下
佛系咸鱼en 2020-07-09
  • 打赏
  • 举报
回复
引用 3 楼 自信男孩的回复:
#include<stdio.h>
int main()
{
int a, b, c;
int s[100], p[100], q[100];

scanf_s("%d %d %d", &a, &b, &c);
if (a > 100)
a = 100;

for (int i = 0; i < a; i++)
{
scanf_s("%d", &s[i]);
}
int max1;
for (int i = 0; i < a; i++)
{
max1 = i;
//for (int t = i; t < a - i&&i+1<a; t++)
for (int t = i; t < a; t++)
{
if (s[max1] <= s[t])
max1 = t;

}
if (max1 != i) {
int tmp = s[i];
s[i] = s[max1];
s[max1] = tmp;
}
}
for (int i = 0; i < a; i++)
{
printf("%d", s[i]);
}
return 0;
}

供参考~
其实我想解决的并不是代码的问题,我自己的这个就写了出来也没运行,肯定会有问题,我想解决的是编译器报错的问题,当然也非常感谢你的解答。
自信男孩 2020-07-09
  • 打赏
  • 举报
回复
#include<stdio.h>
int main()
{
int a, b, c;
int s[100], p[100], q[100];

scanf_s("%d %d %d", &a, &b, &c);
if (a > 100)
a = 100;

for (int i = 0; i < a; i++)
{
scanf_s("%d", &s[i]);
}
int max1;
for (int i = 0; i < a; i++)
{
max1 = i;
//for (int t = i; t < a - i&&i+1<a; t++)
for (int t = i; t < a; t++)
{
if (s[max1] <= s[t])
max1 = t;

}
if (max1 != i) {
int tmp = s[i];
s[i] = s[max1];
s[max1] = tmp;
}
}
for (int i = 0; i < a; i++)
{
printf("%d", s[i]);
}
return 0;
}

供参考~
佛系咸鱼en 2020-07-09
  • 打赏
  • 举报
回复
引用 1 楼 自信男孩的回复:
楼主要实现什么?并且楼主的i在两个循环里,并且第二层循环还在第一层循环里。

#include<stdio.h>
int main()
{
int a, b, c;
int s[100], p[100], q[100];

scanf_s("%d %d %d", &a, &b, &c);
if (a > 100)
a = 100;

for (int i = 0; i < a; i++)
{
scanf_s("%d", &s[i]);
}
int max1 = s[0];
for (int i = 0; i < a; i++)
{
for (int t = 0; t < a - i&&i+1<a; t++)
{
if (s[i] <= s[i + 1])
max1= s[i + 1];
s[i + 1] = s[i];
s[i] = max1;
}
}
for (int i = 0; i < a; i++)
{
printf("%d", s[i]);
}
return 0;
}

供参考~
目的是实现由大到小排序
自信男孩 2020-07-09
  • 打赏
  • 举报
回复
楼主要实现什么?并且楼主的i在两个循环里,并且第二层循环还在第一层循环里。

#include<stdio.h>
int main()
{
int a, b, c;
int s[100], p[100], q[100];

scanf_s("%d %d %d", &a, &b, &c);
if (a > 100)
a = 100;

for (int i = 0; i < a; i++)
{
scanf_s("%d", &s[i]);
}
int max1 = s[0];
for (int i = 0; i < a; i++)
{
for (int t = 0; t < a - i&&i+1<a; t++)
{
if (s[i] <= s[i + 1])
max1= s[i + 1];
s[i + 1] = s[i];
s[i] = max1;
}
}
for (int i = 0; i < a; i++)
{
printf("%d", s[i]);
}
return 0;
}

供参考~

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧