各位大佬,麻烦帮忙看下
本帖最后由 basketmn 于 2021-11-23 14:16 编辑#include<stdio.h>
int main()
{
int n,i,j,t;
scanf("%d",&n);
int a;
for(i=0;i<n;i++)scanf("%d",&a);
for(i=0;i<n;i++){
for(j=0;j<n-i;j++)
if(a>a){
t=a;
a=a;
a=t;
}
}
for(i=0;i<5;i++)printf("%d %d ",i,a);
return 0;
}
为什么不论输入什么,数组第一个数都是0.
如果说缓冲区是换行的话,那为什么不是10呢?
如果,把n固定变成一个常数(就是说不要scanf),那输出结果就又正确了,实在是不懂! 本帖最后由 jackz007 于 2021-11-23 14:24 编辑
这个代码的最后把循环次数由 5 变成 n 后运行结果完全正确,没有任何问题
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
8
1 2 3 4 5 6 7 8
0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8
D:\00.Excise\C>x
8
9 8 7 6 5 4 3 2
0 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9
D:\00.Excise\C>
第一个数是 0 是因为打印了数组索引,那必须得是 0 啊! 大佬,我是第一个直接是0,0,数组元素直接是0,我是win10, dev c++ jackz007 发表于 2021-11-23 14:22
这个代码的最后把循环次数由 5 变成 n 后运行结果完全正确,没有任何问题
第一个数是 ...
比如输入
5
5 4 3 2 1
输出
0 0 1 1 2 2 3 3 4 4 basketmn 发表于 2021-11-23 16:41
比如输入
5
5 4 3 2 1
你确认用的是 1 楼的代码?
可是,在我这里是这样的:
D:\0002.Exercise\C>g++ -o x x.c
D:\0002.Exercise\C>x
5
5 4 3 2 1
0 1 1 2 2 3 3 4 4 5
D:\0002.Exercise\C> jackz007 发表于 2021-11-23 16:44
你确认用的是 1 楼的代码?
可是,在我这里是这样的:
大佬,我100%确定。
我本来想练一下冒泡排序,所以就写了一个 basketmn 发表于 2021-11-23 17:07
大佬,我100%确定。
我本来想练一下冒泡排序,所以就写了一个
那就只能说碰到鬼了,难道你的 n 不等于 5 乎??? 你要这样把它改成 5 ??? jackz007 发表于 2021-11-23 17:14
那就只能说碰到鬼了,难道你的 n 不等于 5 乎??? 你要这样把它改成 5 ???
大佬,比如我改成这样
#include<stdio.h>
int main()
{
int n,i,j,t;
//scanf("%d",&n);
int a;
for(i=0;i<5;i++)scanf("%d",&a);
for(i=0;i<5;i++){
for(j=0;j<5-i;j++)
if(a>a){
t=a;
a=a;
a=t;
}
}
for(i=0;i<5;i++)printf("%d %d ",i,a);
return 0;
}
就没问题! {:10_256:} jackz007 发表于 2021-11-23 17:14
那就只能说碰到鬼了,难道你的 n 不等于 5 乎??? 你要这样把它改成 5 ???
大佬,我在gcc下还是这么个结果,实在是不懂 数组越界访问
#include <stdio.h>
int main() {
int n, i, j, t;
scanf("%d", &n);
int a;
for(i = 0; i < n; i++)
scanf("%d", &a);
for(i = 0; i < n; i++) {
//for(j = 0; j < n - i; j++)
for(j = 0; j < n - i - 1; j++)
if(a > a) {
t = a;
a = a;
a = t;
}
}
//for(i = 0; i < 5; i++)
for(i = 0; i < n; i++)
printf("%d %d \n", i, a);
return 0;
}
人造人 发表于 2021-11-24 10:13
数组越界访问
瞬间恍然大悟,谢谢人造人大佬 人造人 发表于 2021-11-24 10:13
数组越界访问
大佬,麻烦帮我看下,还是这个问题 basketmn 发表于 2021-11-24 10:28
大佬,麻烦帮我看下,还是这个问题
? 人造人 发表于 2021-11-24 10:30
?
我又开了一贴,麻烦帮忙看看,谢谢 basketmn 发表于 2021-11-24 10:32
我又开了一贴,麻烦帮忙看看,谢谢
已经回复你了
页:
[1]