爱问知识人 爱问教育 医院库

VC 问题。。。求教达人

首页

VC++问题。。。求教达人

#include<iostream.h>
#include<string.h>
void sort(char (*p)[100],int n)
{
  char temp[100];
    int i,j;
  for(i=0;i<n;i++)
  {
    for(j=i+1;j<n+1;j++)
      if(strcmp(p[i],p[j])>0)
      {
        strcpy(temp,p[i]);
        strcpy(p[i],p[j]);
        strcpy(p[j],temp);
      }
  }
}
void main(void)
{
  char str[100];
  int j;
  cout<<"请定义字符串的个数"<<endl;
  cin>>j;
  char (*p)[100]=new char[j][100];
  cout<<"请输入长度不等的"<<j<<"个字符串"<<endl;
  for(int i=0;i<j;i++)
  {
    cin.getline(p[i],100);
  }
    sort(p,j);

    for(int k=0;k<j;k++)
      cout<
        

提交回答
好评回答
  • 2008-06-22 13:13:46
    在cin>>j的时候,你肯定输入一个数字,然后输入回车,对吧?
    问题就在这里,数字给了j,而回车就给了下次的cin,
    也就是cin.getline(...),这里就给p[0]赋了个空串。
    若你输入j为1,不是直接就结束了,而是将这个空串排序,你看看是不是在"press any key to continue"上面有一个空行?
    若你输入10,就是后来你输入的9个字符串,在加上那个空串排序。
    当然空行总是被排到第一个位置。
    你可以在输入数字的时候如此操作:(数字+空格+第一个字符串)
    如:10 sdgsdfg
    补充一点:最后应该delete [] p;来释放空间。

    l***

    2008-06-22 13:13:46

其他答案

    2008-06-22 13:31:32
  •   #include 
    #include 
    void sort(char (*p)[100],int n) 
    { 
    char temp[100]; 
    int i,j; 
    for(i=0;i0) 
    { 
    strcpy(temp,p[i]); 
    strcpy(p[i],p[j]); 
    strcpy(p[j],temp); 
    } 
    } 
    } 
    void main(void) 
    { 
    char str[100]; 
    int j; 
    cout>j; 
    j++;
    char (*p)[100]=new char[j][100]; 
    cout<<"请输入长度不等的"<  getline(p[i],100); 
    } 
    sort(p,j); 
    for(int k=0;k  

    ¥***

    2008-06-22 13:31:32

类似问题

换一换
  • VC++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):