C语言用指针比较多个数的大小
目标是将一列数由小到大排列后输出,我编的程序如下,问题是最终不会输出任何结果,求教如何改正#include<stdio.h>intmain(void){doublea[1...
目标是将一列数由小到大排列后输出,我编的程序如下,问题是最终不会输出任何结果,求教如何改正
#include <stdio.h>
int main(void)
{
double a[100],t;
int n,j,i;
char k;
double *p=a;
printf("请输入需要排序的数据,空格键隔开,回车键结束数据录入:\n");
for(i=0;i<100;i++)
{
scanf("%lf",p++);
k=getchar();
if(k='\n')
break;
}
n=i;
for(j=0;j<n;j++)
{
for(p=a;p<(a+n-j);p++)
{
if(*p>*(p+1))
{
t=*p;*p=*(p+1);*(p+1)=t;
}
}
}
printf("降序排列是:\n");
for(p=a;p<(a+n);p++)
printf("%g",*p);
printf("\n");
return 0;
} 展开
#include <stdio.h>
int main(void)
{
double a[100],t;
int n,j,i;
char k;
double *p=a;
printf("请输入需要排序的数据,空格键隔开,回车键结束数据录入:\n");
for(i=0;i<100;i++)
{
scanf("%lf",p++);
k=getchar();
if(k='\n')
break;
}
n=i;
for(j=0;j<n;j++)
{
for(p=a;p<(a+n-j);p++)
{
if(*p>*(p+1))
{
t=*p;*p=*(p+1);*(p+1)=t;
}
}
}
printf("降序排列是:\n");
for(p=a;p<(a+n);p++)
printf("%g",*p);
printf("\n");
return 0;
} 展开
展开全部
没有任何输出是因为你这句:if(k='\n')
写的不对,应该是if(k=='\n')
其它还有些逻辑错误,你自己再看看
写的不对,应该是if(k=='\n')
其它还有些逻辑错误,你自己再看看
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-10-14 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
#include<stdio.h>
void main()
{
int m;
printf("请输入要比较的数的个数:\n");
scanf("%d",&m);
int *A=new int[m];
printf("请输入要比的数:\n");
for(int i=0;i<m;i++){
scanf("%d",&A[i]);
}
for(i=0;i<m-1;i++){
for(int j=i+1;j<m;j++){
if(A[j]>A[i]){
int temp;
temp=A[j];
A[j]=A[i];
A[i]=temp;
}
}
}
printf("排序后为:\n");
for(i=0;i<m;i++){
printf("%d ",A[i]);
}
printf("\n");
}
void main()
{
int m;
printf("请输入要比较的数的个数:\n");
scanf("%d",&m);
int *A=new int[m];
printf("请输入要比的数:\n");
for(int i=0;i<m;i++){
scanf("%d",&A[i]);
}
for(i=0;i<m-1;i++){
for(int j=i+1;j<m;j++){
if(A[j]>A[i]){
int temp;
temp=A[j];
A[j]=A[i];
A[i]=temp;
}
}
}
printf("排序后为:\n");
for(i=0;i<m;i++){
printf("%d ",A[i]);
}
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main(void)
{
double a[100],t;
int n,j,i;
char k;
double *p=a;
printf("请输入需要排序的数据的个数: ");
scanf("%d",&n);
printf("请输入需要排序的数据,空格键隔开,回车键结束数据录入: ");
for(i=0;i<n&&i<100;i++)
{
scanf("%lf",&a[i]);
}
for(j=0;j<n-1;j++)
{
for(p=a;p<(a+n-j);p++)
{
if(*p<*(p+1))
{
t=*p;*p=*(p+1);*(p+1)=t;
}
}
}
printf("降序排列是:\n");
for(p=a;p<(a+n);p++)
printf("%g ",*p);
printf("\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询