这个c语言程序是错误的,找个大神帮我改正一下,谢谢了。

#include"stdio.h"void fenxi(int n);void shuchu(int n);main(){ int m; printf("\n\n\n"); printf("\t\t\t******纸牌游戏******\n"); printf("游戏规则如下:\n\n\n"); printf("\t编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,\n"); printf(" 直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后\n"); printf(" 一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;\n"); printf(" 再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向\n"); printf(" 上的牌有哪些?\n"); printf("\t*1.游戏分析:\n*2.输出结果:"); printf("请输入你的选择"); scanf("%d",&m); m=fenxi(m); m=shuchu(m);}
void fenxi(1){
int a[52]; int i,j; printf("游戏分析:\n\n"); printf("\t如下列数组,游戏开始时,所有牌面朝上,每张牌翻一下,则该张牌出现一次,若"); printf("出现偶数次的牌为正反抵消,依然为朝上的,所以朝上的为1和以下偶数次出现的数。\n"); for(i=1;i<=53;i++) { for(j=2;j<=53;j++) if(i%j==0) { printf("%d ",i);
} printf("\n"); } retnrn}void shuchu(2){ int a[52]; int i,j; printf("\n\n第五十二次翻牌过后正面向上的有:\n\n"); for(i=1;i<=52;i++) { a[i]=-1; } for(i=1;i<=53;i++) {
for(j=2;j<=53;j++) { if(i%j==0) {
a[i]=a[i]*-1; } } }
printf("正面向上的牌有:\n"); for(i=1;i<=52;i++) { if(a[i]*-1==1) printf("%d ",i); } getch(); }

#include"stdio.h"

void fenxi(int n);

void shuchu(int n);


void  fenxi(int n)

{

 int a[52]; 

 int i,j; 

 printf("游戏分析:\n\n");

 printf("\t如下列数组,游戏开始时,所有牌面朝上,每张牌翻一下,则该张牌出现一次,若");

 printf("出现偶数次的牌为正反抵消,依然为朝上的,所以朝上的为1和以下偶数次出现的数。\n"); 

 for(i=0;i<52;i++)  

 {   

for(j=2;j<52;j++)    

if(i%j==0)    

{    

printf("%d   ",i);

    }   

printf("\n");  

 } 

 

}

void shuchu(int n)

int a[52];

int i,j;     

printf("\n\n第五十二次翻牌过后正面向上的有:\n\n"); 

for(i=0;i<52;i++) 

{   

a[i]=-1; 

}     

for(i=0;i<52;i++) 

{

  for(j=2;j<52;j++)  

  {        

 if(i%j==0)  

 {  

    a[i]=a[i]*-1;  

 }  

  }  

}

printf("正面向上的牌有:\n");

for(i=0;i<52;i++)

{     

if(a[i]*-1==1)     

printf("%d   ",i);

//getch();  

}

void main()

int m; 

printf("\n\n\n"); 

printf("\t\t\t******纸牌游戏******\n");

printf("游戏规则如下:\n\n\n");

printf("\t编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,\n");    

printf("    直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后\n");

printf("    一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;\n"); 

printf("    再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向\n");

printf("    上的牌有哪些?\n"); printf("\t*1.游戏分析:\n*2.输出结果:");

printf("请输入你的选择"); 

scanf("%d",&m);  

fenxi(m); 

shuchu(m);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-31
小问题太多了 自己要先debug再把问题丢出来,不然什么东西都学不到。
#include <stdio.h>
void fenxi();
void shuchu();
void main(){ 
    int m; 
    printf("\n\n\n");
    printf("\t\t\t******纸牌游戏******\n"); 
    printf("游戏规则如下:\n\n\n"); 
    printf("\t编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,\n");   
    printf("    直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后\n");
    printf("    一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;\n");
    printf("    再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向\n"); 
    printf("    上的牌有哪些?");

    while(1){
        printf("\n\t*1.游戏分析:\n\t*2.输出结果:\n\t*3.退出:\n"); 
    printf("\t请输入你的选择:"); 
    scanf("%d",&m);
    switch(m){
    case 1:
        fenxi();
        break;
    case 2:
        shuchu();
        break;
    default:
        return;
    }
    }
    return;
}

void fenxi(){
    int i,j;
    printf("游戏分析:\n\n");
    printf("\t如下列数组,游戏开始时,所有牌面朝上,每张牌翻一下,则该张牌出现一次,若"); 
    printf("出现偶数次的牌为正反抵消,依然为朝上的,所以朝上的为1和以下偶数次出现的数。\n"); 
    for(i=1;i<=52;i++){
        for(j=2;j<=52;j++)
             if(i%j==0){
                 printf("%d   ",i);
             }
        printf("\n"); 
    } 
    return;
}

void shuchu(){
    int a[52]={0}; 
    int i,j;     
    printf("\n\n第五十二次翻牌过后正面向上的有:\n\n");
    for(i=0;i<=51;i++)  { 
        a[i]=-1; 
    }     
    for(i=1;i<=52;i++)  {
        for(j=2;j<=52;j++){   
            if(i%j==0){  
                a[i-1]=a[i-1]*-1; 
            }  
        }  
    }
    for(i=1;i<=52;i++){   
        if(a[i-1]*-1==1)    
            printf("%d   ",i); 
    } 
    getchar();  
}

相似回答