| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 613 人关注过本帖
标题:求问c++2010这个报错怎么修改
只看楼主 加入收藏
k78
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-6-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
求问c++2010这个报错怎么修改
#include<string.h>
#include<stdio.h>
#define N 50   //单词数上限
#define M 26   //单词长度上限
void WordSort(char word[][M],int n);
void print(const char word[][M],int n);
//主函数
void main()
{
    char word[N][M];
    int m=M-1;
    int count=N;
    int n=0,i;
    //控制输入的单词数在1-50
    while(n<1||n>50)
    {
        printf("请输入你将要输入的单词数:(1-%d)n",count);
        scanf("%d",&n);
    }
    printf("请输入%d个单词,以空格分开n(单词长度不得超过%d,若超出,程序会自动忽略超出部分)n",n,m);
    for(i=0;i<n;i++)
    {
        scanf("%s",&word[i]);
        word[i][M-1]='�';
    }
    WordSort(word,n);
    print(word,n);
    printf("程序结束,若要对更多或者更长的单词排序请修改N,M的值n");
}
//插入排序
void WordSort(char word[][M],int n)
{
    char key[M];
    int i,j;
    for(i=1;i<n;i++)
    {
        strcpy(key,word[i]);
        j=i;
        while(j>=1&&strcmp(word[j-1],key)>0)
        {
            strcpy(word[j],word[j-1]);
            j--;
        }
        strcpy(word[j],key);
    }
}
//打印数组
void print(const char word[][M],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        print("%sn",word[i]);
    }
}

1>c:userszzxdocumentsvisual studio 2010projects对输入的n个单词排序对输入的n个单词排序zzy.c(53): warning C4047: “函数”:“const char (*)[26]”与“char [4]”的间接级别不同
1>c:userszzxdocumentsvisual studio 2010projects对输入的n个单词排序对输入的n个单词排序zzy.c(53): warning C4024: “print”: 形参和实参 1 的类型不同
1>c:userszzxdocumentsvisual studio 2010projects对输入的n个单词排序对输入的n个单词排序zzy.c(53): warning C4047: “函数”:“int”与“const char [26]”的间接级别不同
1>c:userszzxdocumentsvisual studio 2010projects对输入的n个单词排序对输入的n个单词排序zzy.c(53): warning C4024: “print”: 形参和实参 2 的类型不同
搜索更多相关主题的帖子: word int 排序 单词 
2022-06-22 19:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:20 
求问c++2010这个报错怎么修改
a. 目前世上没有“c++2010”这么个东西!有“C++98”“C++03”“C++11”“C++14”“C++17”“C++20”“C++23”,也有“VC++2010”"VC++10"……“VC++2022”“VC++17”,但绝无“c++2010”
b. 你这是C代码,为什么却在C++板块提问?
c. VC++2010(也就是VC++10)它不支持C语言,直到VC++2017(也就是VC++15)微软才开始部分支持C语言。也就是说,即使我给你C源码,你的VC++2010也不支持呀

程序代码:
#include <stdio.h>
#include <string.h>

#define WORDS_MAXCOUNT 50                 // 单词数上限
#define WORD_MAXLENGTH 26                 // 单词长度上限

#define WORD_BYTESSIZE (WORD_MAXLENGTH+1) // 单词占据空间尺寸

#define __TO_STR(x) #x
#define _TO_STR(x) __TO_STR(x)
#define WORD_MAXLENGTH_S _TO_STR(WORD_MAXLENGTH) // 将 WORD_MAXLENGTH 字符串化,例如 "26"

void words_sort( char words[][WORD_BYTESSIZE], size_t count );
void print_array( const char words[][WORD_BYTESSIZE], size_t count );

int main( void )
{
    size_t count;
    for( ; ; )
    {
        printf( "请输入你将要输入的单词数(1-%zu): ", (size_t)WORDS_MAXCOUNT );

        char tmp = 0;
        if( 1==scanf("%zu%*[\t\v\f\r ]",&count) && 1==scanf("%c",&tmp) && tmp=='\n' && count>0 && count<=WORDS_MAXCOUNT )
            break;
        if( tmp != '\n' )
            scanf( "%*[^\n]%*c" );
    }

    char words[WORDS_MAXCOUNT][WORD_BYTESSIZE];
    printf( "请输入%zu个单词,以空白字符分开(单词长度不得超过%zu,若超出,程序会自动忽略超出部分)\n", count, (size_t)WORD_MAXLENGTH );
    for( size_t i=0; i!=count; ++i )
    {
        char tmp;
        scanf( "%" WORD_MAXLENGTH_S "s%c", words[i], &tmp );
        if( tmp!='\t' && tmp!='\n' && tmp!='\v' && tmp!='\f' && tmp!='\r' && tmp!=' ' )
            scanf( "%*[^\t^\n^\v^\f^\r^ ]" );
    }
    words_sort( words, count );
    puts( "\n排序后的数组是:" );
    print_array( words, count );
    puts( "程序结束,若要对更多或者更长的单词排序请修改 WORDS_MAXCOUNT 和 WORD_MAXLENGTH 的值" );
}

void words_sort( char words[][WORD_BYTESSIZE], size_t count )
{
    for( size_t i=0; i!=count; ++i )
    {
        for( size_t j=i+1; j!=count; ++j )
        {
            if( strcmp(words[j],words[i]) > 0 )
            {
                char temp[WORD_BYTESSIZE];
                strcpy( temp, words[j] );
                strcpy( words[j], words[i] );
                strcpy( words[i], temp );
            }
        }
    }
}

void print_array( const char words[][WORD_BYTESSIZE], size_t count )
{
    for( size_t i=0; i!=count; ++i )
    {
        puts( words[i] );
    }
}

输入输出
请输入你将要输入的单词数(1-50): 0
请输入你将要输入的单词数(1-50): 51
请输入你将要输入的单词数(1-50):  3 x
请输入你将要输入的单词数(1-50): 3x
请输入你将要输入的单词数(1-50): 3
请输入3个单词,以空白字符分开(单词长度不得超过26,若超出,程序会自动忽略超出部分)
abc
abcdef
abcdefghijklmnopqrstuvwxyz012345

排序后的数组是:
abcdefghijklmnopqrstuvwxyz
abcdef
abc
2022-06-23 13:41
快速回复:求问c++2010这个报错怎么修改
数据加载中...
 
   



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

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