急急急!!!求大神修改下。c语言的小程序, 10
这是个c语言你的小程序,有52张纸牌,现正面朝上,先把2的倍数的纸牌翻一下,再以3的倍数翻一下,再以4的倍数翻一下,,,,,一直到52的倍数。在if(p->data%i=...
这是个c语言你的小程序,有52张纸牌,现正面朝上,先把2的倍数的纸牌翻一下,再以3的倍数翻一下,再以4的倍数翻一下,,,,,一直到52的倍数。
在 if(p->data%i==0) 这个位置有毛病,真心不会,本人菜菜。。
#include<stdio.h>
#include<stdlib.h>
typedef int elempt;
typedef struct node
{
elempt key;
elempt data;
struct node *next;
}linklist;
linklist * InitList(linklist *l)
{
l=(linklist*)malloc(sizeof(linklist));
l->next=NULL;
return (l);
}
linklist * InitData(linklist *l)
{
int i;
linklist *p,*t;
p=(linklist*)malloc(sizeof(linklist));
p=l;
for(i=1;i<=52;i++)
{
t=(linklist*)malloc(sizeof(linklist));
t->data=i;
t->key=1;
l->next=t;
l=l->next;
}
l=NULL;
l=p;
return (l);
}
void Start_Play(linklist *l)
{
int i=2;
linklist *p;
p=(linklist*)malloc(sizeof(linklist));
l=l->next;
while(i<=52)
{
p=l;
while(p!=NULL)
{
if(p->data%i==0)
p->key=-(p->key);
p=p->next;
}
i++;
}
}
void OutPut(linklist *l)
{
l=l->next;
while(l!=NULL)
{
if(l->key==1)
printf("第%d张\n",l->data);
l=l->next;
}
}
int main()
{
linklist *l;
l=InitList(l);
l=InitData(l);
Start_Play(l);
printf("运行结束,正面朝上的纸牌有:\n");
OutPut(l);
} 展开
在 if(p->data%i==0) 这个位置有毛病,真心不会,本人菜菜。。
#include<stdio.h>
#include<stdlib.h>
typedef int elempt;
typedef struct node
{
elempt key;
elempt data;
struct node *next;
}linklist;
linklist * InitList(linklist *l)
{
l=(linklist*)malloc(sizeof(linklist));
l->next=NULL;
return (l);
}
linklist * InitData(linklist *l)
{
int i;
linklist *p,*t;
p=(linklist*)malloc(sizeof(linklist));
p=l;
for(i=1;i<=52;i++)
{
t=(linklist*)malloc(sizeof(linklist));
t->data=i;
t->key=1;
l->next=t;
l=l->next;
}
l=NULL;
l=p;
return (l);
}
void Start_Play(linklist *l)
{
int i=2;
linklist *p;
p=(linklist*)malloc(sizeof(linklist));
l=l->next;
while(i<=52)
{
p=l;
while(p!=NULL)
{
if(p->data%i==0)
p->key=-(p->key);
p=p->next;
}
i++;
}
}
void OutPut(linklist *l)
{
l=l->next;
while(l!=NULL)
{
if(l->key==1)
printf("第%d张\n",l->data);
l=l->next;
}
}
int main()
{
linklist *l;
l=InitList(l);
l=InitData(l);
Start_Play(l);
printf("运行结束,正面朝上的纸牌有:\n");
OutPut(l);
} 展开
2个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
typedef int elempt;
typedef struct node {
elempt key;
elempt data;
struct node *next;
}linklist;
linklist *EmptyList() {
linklist *head = (linklist *)malloc(sizeof(linklist));
head->next=NULL;
return head;
}
void InitData(linklist *head) {
int i;
linklist *p = head;
for(i = 1;i <= 52;i++) {
p->next = (linklist *)malloc(sizeof(linklist));
p->next->data = i;
p->next->key = 1;
p = p->next;
}
p->next = NULL;
}
void Start_Play(linklist *head) {
int i;
linklist *p;
for(i = 2; i <= 52; ++i) {
p = head->next;
while(p) {
if(p->data%i == 0) p->key = 0;
p = p->next;
}
}
}
void OutPut(linklist *head) {
linklist *p = head->next;
int i;
for(i = 1; p && i <= 52; ++i,p = p->next)
if(p->key) printf("第%d张(%d)\n",i,p->data);
}
int main() {
linklist *head = EmptyList();
InitData(head);
Start_Play(head);
printf("运行结束,正面朝上的纸牌有:\n");
OutPut(head);
return 0;
}
展开全部
追问
看了贴吧里的 真心不懂 大神要是有时间帮忙改一下呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询