编码错误
#include <stdio.h>void main()
{
int i,j,t,n;
do
{
printf("请输入一个大于1小于等于10的整数:");
scanf("%d",&n);
}while(n<=1||n>10);
int a;
printf("please input %d numbers:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
}
for(j=0;j<n-1;j++)
{
for(i=0;i<n-1-j;i++)
{
if(a>a)
{
int t;
t=a;
a=a;
a=t;
}
}
}
for(i=0;i<n;i++)
{
printf("%d",a);
}
} 我这个编码哪里有错误 你用的是什么编译器? baige 发表于 2020-8-31 10:20
你用的是什么编译器?
vc6++ 雨天Zz 发表于 2020-8-31 10:36
vc6++
用dev吧 本帖最后由 baige 于 2020-8-31 10:46 编辑
VC6.0里面的C标准是C89,一些特性不支持,代码是没有错的,用其他编译器把void main()改为int main() 本帖最后由 baige 于 2020-8-31 10:45 编辑
或者改成下面这个,应该可以在vc++6.0使用 #include <stdio.h>
int main()
{
int i,j,t,n, a = {0};
do
{
printf("请输入一个大于1小于等于10的整数:");
scanf("%d",&n);
} while(n<=1||n>10);
printf("please input %d numbers:",n);
for(i=0; i<n; i++)
{
scanf("%d",&a);
}
for(j=0; j<n-1; j++)
{
for(i=0; i<n-1-j; i++)
{
if(a>a)
{
t=a;
a=a;
a=t;
}
}
}
for(i=0; i<n; i++)
{
printf("%d ",a);
}
return 0;
} baige 发表于 2020-8-31 10:45
老师我的代码问题出在哪里,你的编码我试了一下没错误,但我没找到我的问题出在哪 本帖最后由 baige 于 2020-8-31 10:57 编辑
雨天Zz 发表于 2020-8-31 10:52
老师我的代码问题出在哪里,你的编码我试了一下没错误,但我没找到我的问题出在哪
vc++6.0应该不支持int a,这样的写法
vc++6.0是很久以前的了,对于现在的一些特性都不兼容,也就是不能使用新特性 雨天Zz 发表于 2020-8-31 10:52
老师我的代码问题出在哪里,你的编码我试了一下没错误,但我没找到我的问题出在哪
对的,vc不支持c99特性,而变长数组是属于c99的特性 baige 发表于 2020-8-31 10:54
vc++6.0应该不支持int a,这样的写法
vc++6.0是很久以前的了,对于现在的一些特性都不兼容,也就是 ...
那如果说我要先输入一个n,才能知道数组的长度,那么在vc++6.0中该怎么表示这个数组呀,你上面写的是a,但是数组长度是根据输入的n来判别的 雨天Zz 发表于 2020-8-31 11:14
那如果说我要先输入一个n,才能知道数组的长度,那么在vc++6.0中该怎么表示这个数组呀,你上面写的是a
我是根据题目的要求,事先设定一个能满足最大容量的数组,我们使用时,只需使用从0到n-1里面存放的数组元素,后面的不用去管 雨天Zz 发表于 2020-8-31 11:14
那如果说我要先输入一个n,才能知道数组的长度,那么在vc++6.0中该怎么表示这个数组呀,你上面写的是a
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
int main() {
size_t i, j, n;
int t;
int* a;
printf("请输入一个的整数:");
scanf("%d", &n);
a = (int*)malloc(n * sizeof(int));
printf("please input %d numbers:", n);
for (i = 0; i < n; i++) {
scanf("%d", &a);
}
for (j = 0; j < n - 1; j++) {
for (i = 0; i < n - 1 - j; i++) {
if (a > a) {
t = a;
a = a;
a = t;
}
}
}
for (i = 0; i < n; i++) {
printf("%d", a);
}
return 0;
} 数组定义时不能用变量 baige 发表于 2020-8-31 11:16
我是根据题目的要求,事先设定一个能满足最大容量的数组,我们使用时,只需使用从0到n-1里面存放的数组元 ...
那这样的话你式子中写的int a={0},没必要把a={0},因为后面还会赋值的 雨天Zz 发表于 2020-8-31 12:04
那这样的话你式子中写的int a={0},没必要把a={0},因为后面还会赋值的
不去赋值也是可以的,我这是习惯把它初始化 baige 发表于 2020-8-31 10:45
#include <stdio.h>
void main()
{
int i,j,t,n;
do
{
printf("请输入一个大于1小于等于10的整数:");
scanf("%d",&n);
}while(n<=1||n>10);
int a;
printf("please input %d numbers:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
}
for(j=0;j<n-1;j++)
{
for(i=0;i<n-1-j;i++)
{
if(a>a)
{
t=a;
a=a;
a=t;
}
}
}
for(i=0;i<n;i++)
{
printf("%d",a);
}
}
老师为什么我这样编码,系统还是说有错误?
本帖最后由 baige 于 2020-8-31 12:41 编辑
雨天Zz 发表于 2020-8-31 12:30
#include
void main()
{
#include <stdio.h>
void main()
{
int i,j,t,n;
do
{
printf("请输入一个大于1小于等于10的整数:");
scanf("%d",&n);
} while(n<=1||n>10);
int a;
printf("please input %d numbers:",n);
for(i=0; i<n; i++)
{
// a不是a
scanf("%d",&a);
}
for(j=0; j<n-1; j++)
{
for(i=0; i<n-1-j; i++)
{
// 到最后把a改为a,你把a写成a了
if(a>a)
{
t=a;
a=a;
a=t;
}
}
}
for(i=0; i<n; i++)
{
printf("%d",a);
}
} 本帖最后由 baige 于 2020-8-31 12:40 编辑
a写成a了
baige 发表于 2020-8-31 12:33
#include <stdio.h>
void main()
{
int i,j,t,n;
do
{
printf("请输入一个大于1小于等于10的整数:");
scanf("%d",&n);
}while(n<=1||n>10);
int a;
printf("please input %d numbers:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
}
for(j=0;j<n-1;j++)
{
for(i=0;i<n-1-j;i++)
{
if(a>a)
{
t=a;
a=a;
a=t;
}
}
}
for(i=0;i<n;i++)
{
printf("%d",a);
}
}
这样的话还是显示有问题