| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1064 人关注过本帖
标题:啊。。。抓狂,程序。。。
只看楼主 加入收藏
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
我不是求合,是计算1的个数.然后由数组记录,按照这个记录对那个真实的数组进行排序.

感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2009-10-16 22:42
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:3 
不知道有没有二维字符串的说法啊
如果有的话,我想用一个二维字符串s[10][10]来存放输入的字符串.
我试了一下,对于该字符串,gets()和puts()函数是有效的,但是strlen(s[i])却得不到相应单个字符串的长度,就是是自己用循环判断元素是否为'\0'也无法得到其长度。那是不是这种s[i][j]形式的字符串不存在,还是有其他的缘由呢?
2009-10-16 22:55
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
char s[10][10];
s[10]有10个字符串,s[0]就是一个字符串,字符串函数使用它都有效,strlen函数当然有效,
用gets或printf("%s",s[0]);输入字串长度要小于10,要留个字节保存结束符'\0'。

努力—前进—变老—退休—入土
2009-10-16 23:11
jeff19902
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-10-16
收藏
得分:0 
回复 11楼 流星雨
额。。。点错点错。呵呵,你的我懂,,刚是想说8楼的,。
2009-10-16 23:35
jeff19902
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-10-16
收藏
得分:0 
回复 13楼 UserYuH
恩。围观学习了。。唉,要是有谁能够编出来看看该多好撒。。
2009-10-16 23:37
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
按省空间要求,用到了动态申请空间,程序运行先输入几串字符。再输入字串。
如输入:
3
10101101
11101
1011111
·
显示:
4    11101
5    10101101
6    1011111
·
·
程序代码:
#define Slen 20 
#include <stdio.h> 
int MAX; 
 
void Funone(char **s,int *m) /* 求每串1的次数 */
{ 
 int i; 
 char *p; 
 for(i=0;i<MAX;i++) 
   { 
    p=s[i]; 
    m[i]=0; 
    while(*p!='\0') 
      { 
       if(*p=='1')m[i]++; 
       p++; 
      } 
   } 
} 
 
void Preface(char **s,int *m) /* 排序 */
{ 
 int i,j,min,t,k; 
 char *p; 
 for(i=0;i<MAX-1;i++) 
   { 
    min=m[i]; 
    k=i; 
    for(j=i+1;j<MAX;j++) 
      { 
       if(min>m[j])min=m[j],k=j; 
      } 
    if(k!=i) 
      { 
       t=m[i],m[i]=m[k],m[k]=t; 
       p=s[i],s[i]=s[k],s[k]=p; 
      } 
   } 
} 
 
int main(void) 
{ 
   int i,j,n,*m; 
   char **s,*p; 
   printf("Input the biggest number:"); 
   scanf("%d",&MAX); 
   m=malloc(MAX*sizeof(int));   /* 给m分配空间,作用:用来保存对应字符串1的次数 */
   s=malloc(MAX*sizeof(char *)); 
   *s=malloc(MAX*sizeof(char)*Slen); 
   for(i=1;i<MAX;i++) 
     { 
      s[i]=s[i-1]+Slen; 
     } 
   for(i=0;i<MAX;i++) 
     scanf("%s",s[i]); 
 
   Funone(s,m); 
 
   Preface(s,m); 
 
   for(i=0;i<MAX;i++) 
     printf("%-5d %s\n",m[i],s[i]); 
 
   getch(); 
   return 0; 
} 
 


努力—前进—变老—退休—入土
2009-10-17 01:31
Quavarion
Rank: 2
等 级:论坛游民
帖 子:60
专家分:28
注 册:2009-10-9
收藏
得分:0 
回复 14楼 jeff19902
所以还要请高人改进
2009-10-17 11:30
快速回复:啊。。。抓狂,程序。。。
数据加载中...
 
   



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

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