注册 登录
编程论坛 C语言论坛

求告知为什么出现warning

魂之子 发布于 2020-01-18 21:34, 1618 次点击
//发纸牌  花色有梅花,方块,红桃和黑桃,点数有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 ;
}
只有本站会员才能查看附件,请 登录
3 回复
#2
bcbbcclbbc2020-01-18 22:03
用c语言写代码文件命名需要以“.c”结尾,才能让c编译器编译。
编译提示中文件扩展名为“.cpp”则为c++的文件,软件会用c++编译器编译。两者需要区分。
#3
魂之子2020-01-18 22:47
回复 2楼 bcbbcclbbc
非常感谢。
#4
wmf20142020-01-18 23:16
对字符串指针赋初值等效于定义字符串常量,常量值是不可以修改的,试着对其写入编译时就会出现警告,运行时就会出现写入错误提示。
1