#include
main()
{
int cock,hen,chicken;//cock,hen,chicken分别为公鸡,母鸡和小鸡
printf("%10s%10s%10s\n","cock","hen","chicken");
for(cock=1;cock<=20;cock++)
{
for(hen=1;hen<=33;hen++)
{
chicken=100-cock-hen;
if(chicken%3==0)
if(chicken%3==0&&5*cock+3*hen+chicken/3==100) )
printf("%9d,%9d,%9d\n",cock,hen,chicken);
}
}
}
33行最右侧括号是多余的吧,而且不需要加chicken%3==0条件了,29行已经判断了
有多处错误:
1.if(chicken%3==0)
后面少了左花括号{
2.添加之后for循环缺少对应的右花括号}
3.main函数的返回值为int型,所以要在最后一行加上return 0; 或者把main函数的返回类型改成void
4.if(chicken%3==0&&5*cock+3*hen+chicken/3==100) )
后面多了一个右括号),需要删除,且chicken%3==0
已经在上一层的if条件中满足了,不需要再判断一次(当然这个不算语法错误)。
修正后的代码·
#include <stdio.h>
int main () {
int cock,hen,chicken;//cock,hen,chicken分别为公鸡,母鸡和小鸡
printf("%10s%10s%10s\n","cock","hen","chicken");
for(cock=1;cock<=20;cock++)
{
for(hen=1;hen<=33;hen++)
{
chicken=100-cock-hen;
if(chicken%3==0){
if(5*cock+3*hen+chicken/3==100)
printf("%9d,%9d,%9d\n",cock,hen,chicken);
}
}
}
return 0;
}
运行结果
main 函数需要有返回类型,因此需要在 main 前面加上返回类型 int。
#include <stdio.h>
int main() {
int cock, hen, chicken;
printf("%10s%10s%10s\n", "cock", "hen", "chicken");
for (cock = 1; cock <= 20; cock++) {
for (hen = 1; hen <= 33; hen++) {
chicken = 100 - cock - hen;
if (chicken % 3 == 0 && 5 * cock + 3 * hen + chicken / 3 == 100) {
printf("%9d,%9d,%9d\n", cock, hen, chicken);
}
}
}
return 0;
}
利用头插法实现链表反转
#include <cstdio>
//链表的创建
int array[5] = {1,2,4,6,7};
struct ListNode{
int val;
ListNode *next;
ListNode(int Val): val(Val),next(NULL){}
};
ListNode* List_Create()//使用尾插法,是正序输入的;
{
ListNode *head= new ListNode(-1);
for(int i = 0;i < 5; i++)
{
ListNode *node = new ListNode(array[i]);
node->next = head->next;
head->next = node;
}
return head->next;
}
void del(ListNode *&head,int sate)
{
ListNode *pre = head;
ListNode *cur = pre->next;
while(cur != NULL)
{
if(sate == cur->val)
{
pre->next = cur->next;
delete cur;
}
pre= pre->next;
cur = pre->next;
}
}
int main() {
ListNode *head = List_Create();
ListNode *cur = head;
while(cur != NULL)
{
printf("%d ",cur->val);
cur = cur->next;
}
}