标题:求告知为什么出现warning
只看楼主
魂之子
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2019-12-25
结帖率:90.91%
已结贴  问题点数:5 回复次数:3 
求告知为什么出现warning
//发纸牌  花色有梅花,方块,红桃和黑桃,点数有2.3.4.5.6.7.8.9.10.J.Q.K.A。要求根据用户输入的牌数n,随机发n张纸牌。


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<malloc.h>

char *str1[4] = {"梅花","黑桃","红桃","方块"};
char *str2[13] = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
char *card[13];
void sendcards(int n);
void printcards(int n);

int main(){
    int n;
    printf("请输入发牌张数:");
    scanf("%d",&n);
    sendcards(n);
    printcards(n);
    return 0;
}

void sendcards(int n){
    int sign [4][13] = {0};
    int k, i, j;
    srand(time(NULL));
    for (k = 0; k < n; ){
        i = rand() % 4;
        j = rand() % 13;
        if (sign[i][j]==1){
            continue;
        }else{
            card[k] = (char*)malloc(6);
            strcpy(card[k],str1[i]);
            strcat(card[k],str2[j]);
            sign[i][j] = 1;
            k++;
        }
    }
    return ;
}

void printcards(int n){
    int k;
    for(k = 0; k < n; k++){
        printf("%-10s",card[k]);
    }
    printf("\n");
    return ;
}
搜索更多相关主题的帖子: int printf void char include 
2020-01-18 21:34
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
得分:5 
用c语言写代码文件命名需要以“.c”结尾,才能让c编译器编译。
编译提示中文件扩展名为“.cpp”则为c++的文件,软件会用c++编译器编译。两者需要区分。
2020-01-18 22:03
魂之子
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2019-12-25
得分:0 
回复 2楼 bcbbcclbbc
非常感谢。
2020-01-18 22:47
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:0 
对字符串指针赋初值等效于定义字符串常量,常量值是不可以修改的,试着对其写入编译时就会出现警告,运行时就会出现写入错误提示。

能编个毛线衣吗?
2020-01-18 23:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498969-1-1.html




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

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