| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 577 人关注过本帖
标题:求大师 解决新手的问题
只看楼主 加入收藏
q510578
Rank: 2
等 级:论坛游民
帖 子:86
专家分:30
注 册:2012-2-29
结帖率:92.31%
收藏
已结贴  问题点数:10 回复次数:9 
求大师 解决新手的问题
#include<stdio.h>
   
int main()
{    int num;
    printf("请输入 num:");
    scanf("%d",&num);
    int a[num],i,j,r,temp;
    for(i=0;i<num;i++)
    printf("请输入数组的元素:")
    scanf("%d",&a[i]);
    for(i=0;i<num-1;i++){
        r=i;
        for(j=i+1;j<num;j++)
            if(a[j]<a[r]) r=j;
         if(r!=i){
            temp=a[i];
            a[i]=a[r];
            a[r]=temp;
            }      
    }
    for(i=0;i<num;i++)
        printf("% 5d",a[i]);
    return 0;
}
我要 给数组元素 从小到大排列。
搜索更多相关主题的帖子: 问题 include return 元素 
2012-04-22 11:20
cuijunchao
Rank: 5Rank: 5
来 自:湖南桂东
等 级:职业侠客
威 望:3
帖 子:132
专家分:386
注 册:2012-4-4
收藏
得分:2 
#include<stdio.h>
   
 int main()
 {    int num;
     printf("请输入 num:");
     scanf("%d",&num);
     int a[num],i,j,r,temp; 数组不可以这样定义的 了 num必须是常数 ,用赋值也不行。
     for(i=0;i<num;i++)
     printf("请输入数组的元素:")
     scanf("%d",&a[i]);
     for(i=0;i<num-1;i++){
         r=i;
         for(j=i+1;j<num;j++)
             if(a[j]<a[r]) r=j;这里也 应该不行,没见过这种 交换的  
          if(r!=i){
             temp=a[i];
             a[i]=a[r];
             a[r]=temp;
             }      
    }
     for(i=0;i<num;i++)
         printf("% 5d",a[i]);
     return 0;
 }

2012-04-22 11:31
嵌入式2012
Rank: 2
等 级:论坛游民
帖 子:5
专家分:26
注 册:2012-3-21
收藏
得分:2 
在C语言中数组的长度不能用变量来定义 但在c++中是支持的 即使你前面有scanf 输入num ,但 int a[num]这种定义法是不被允许的。
2012-04-22 11:32
q510578
Rank: 2
等 级:论坛游民
帖 子:86
专家分:30
注 册:2012-2-29
收藏
得分:0 
回复 2楼 cuijunchao
知道了,谢谢。

与你我希望相处的快乐,你有不快可以向我发泄。
2012-04-22 12:02
q510578
Rank: 2
等 级:论坛游民
帖 子:86
专家分:30
注 册:2012-2-29
收藏
得分:0 
回复 3楼 嵌入式2012
谢谢指点。

与你我希望相处的快乐,你有不快可以向我发泄。
2012-04-22 12:03
q510578
Rank: 2
等 级:论坛游民
帖 子:86
专家分:30
注 册:2012-2-29
收藏
得分:0 
./c/3-18.c: 在函数‘main’中:
./c/3-18.c:13:3: 错误: 程序中有游离的‘\357’
./c/3-18.c:13:3: 错误: 程序中有游离的‘\274’
./c/3-18.c:13:3: 错误: 程序中有游离的‘\233’
./c/3-18.c:13:15: 错误: expected ‘;’ before ‘j’
./c/3-18.c:13:24: 错误: expected ‘;’ before ‘)’ token
这个是gcc调试的结果。请大师们在看看。

与你我希望相处的快乐,你有不快可以向我发泄。
2012-04-22 12:24
小跳蚤
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:437
专家分:1623
注 册:2011-4-9
收藏
得分:2 
for(i=0;i<num;i++)
      printf("请输入数组的元素:")
      scanf("%d",&a[i]);
  要加大括号
for(i=0;i<num;i++)
{
      printf("请输入数组的元素:")
      scanf("%d",&a[i]);
}
 
2012-04-22 12:33
q510578
Rank: 2
等 级:论坛游民
帖 子:86
专家分:30
注 册:2012-2-29
收藏
得分:0 
回复 7楼 小跳蚤
加上之后还是不行。

与你我希望相处的快乐,你有不快可以向我发泄。
2012-04-22 12:44
王点口
Rank: 2
等 级:论坛游民
帖 子:26
专家分:50
注 册:2011-9-15
收藏
得分:2 
看下这样行不 不过你前面的代码也要改
for(i=0;i<num-1;i++)
{
    r = i;
    for(j=i+1;j<num;j++)
    {
        if(a[r] > a[j]);
        {
            temp = a[r];
            a[r] = a[j];
            a[j] = temp ;
        }   
    }
}
2012-04-22 14:36
王点口
Rank: 2
等 级:论坛游民
帖 子:26
专家分:50
注 册:2011-9-15
收藏
得分:2 
int num;
     printf("请输入 num:");
     scanf("%d",&num);
     int a[num],i,j,r,temp; 数组不可以这样定义的 了 num必须是常数 ,用赋值也不行。
2012-04-22 14:37
快速回复:求大师 解决新手的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017749 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved