使用冒泡排序时出现了问题,请指教
题目要求是:编写程序找出输入的n个数字中的最大值和最小值。要求程序运行时先获取n值
#include<stdio.h>
#include<stdlib.h>
#define i n//i为数字编号n为数组长度
void main()
{
//模拟冒泡排序
int n,j;//j为扫描趟数编号
float num[i];
float max,min,num1;//num1为数值交换介质
printf("5_14 编写程序找出输入的n个数字中的最大值和最小值。要求程序运行时先获取n值");
system("pause");//可更换为getch();更改后便不需要第二行代码#include<stdlib.h>
printf("\n\n\n\n请输入n值\n");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
printf("\n请输入第%d个数\n",i+1);
scanf("%f",&num[i]);
}
for(j=0;num[i];j++)//大的数靠左
for(i=j;num[i];i++)
{
if(num[i]<num[i+1])
{
num1=num[i];
num[i]=num[i+1];
num[i+1]=num1;
}
}
max=num[0];
min=num[n-1];
printf("\n在你输入的这\d个数字中,最大的数为\g,最小的数为\g\n",n,max,min);
gerch();
}
错误代码如下:
F:\C语言\第五章作业\5_14\5_14.c(8) : error C2057: expected constant expression
F:\C语言\第五章作业\5_14\5_14.c(8) : error C2466: cannot allocate an array of constant size 0
F:\C语言\第五章作业\5_14\5_14.c(8) : error C2133: 'num' : unknown size
F:\C语言\第五章作业\5_14\5_14.c(33) : warning C4129: 'd' : unrecognized character escape sequence
F:\C语言\第五章作业\5_14\5_14.c(33) : warning C4129: 'g' : unrecognized character escape sequence
F:\C语言\第五章作业\5_14\5_14.c(33) : warning C4129: 'g' : unrecognized character escape sequence
F:\C语言\第五章作业\5_14\5_14.c(34) : warning C4013: 'gerch' undefined; assuming extern returning int
执行 cl.exe 时出错.
5_14.obj - 1 error(s), 0 warning(s)
[解决办法]
你这问题还没到排序呢,基本语法错误。
[解决办法]
#include<stdio.h>#include<stdlib.h>#include<conio.h>void main(){ //模拟冒泡排序 int i,n,j; //j为扫描趟数编号 float num[100]; float max,min,num1; //num1为数值交换介质 printf("5_14 编写程序找出输入的n个数字中的最大值和最小值。要求程序运行时先获取n值"); system("pause"); //可更换为getch();更改后便不需要第二行代码#include<stdlib.h> printf("\n\n\n\n请输入n值\n"); scanf("%d",&n); for(i=0;i<=n;i++) { printf("\n请输入第%d个数\n",i+1); scanf("%f",&num[i]); } for(j=0;j<=n;j++) //大的数靠左 for(i=0;i<n-j;i++) { if(num[i]<num[i+1]) { num1=num[i]; num[i]=num[i+1]; num[i+1]=num1; } } for(i=0;i<=n;++i) { printf("%f ", num[i]); } printf("\n"); max=num[0]; min=num[n]; printf("\n在你输入的这%d个数字中,最大的数为%f,最小的数为%f\n",n,max,min); getch();}
[解决办法]
你那数组定义不能这么定义啊。
int n;
float * num;
cin>>n;
num = new float[n];
[解决办法]
#include <stdio.h>#include <stdlib.h>void main(){ float *p=NULL; int n; float max=-3.4e34; float min=3.4e34; printf("排序的数的个数:"); scanf("%d",&n); p=(float*)malloc(sizeof(float)*n); printf("输入要排序的数:\n"); for (int i=0;i<n;i++) { scanf("%f",&p[i]); } for (int j=0;j<n;j++) { if (p[j]>max&&p[j]>max) { max=p[j]; } if(p[j]<min&&p[j]<min) { min=p[j]; } }printf("MAX=%f MIN=%f",max,min); delete p;}