#include<stdio.h>
int main()
{
int n =0;
while (n <=0)
{
printf("请输入一个正整数:\n");
scanf("%d", &n);
}
int sum =0;
int number =0;
while (number < n)
{
number++;
sum += number;
}
printf("%d\n", sum);
return 0;
}
#include<stdio.h>
int main()
{
int n =0;
// 判断n是否为正整数
while (n <=0)
{
printf("输入一个正整数:\n");
scanf("%d", &n);
}
int sum =0;
int current =0;
while (current < n) {
current++;
// 如果是偶数,就减
if (current %2 ==0) {
sum -= current;
}else {// 如果是奇数,就加
sum += current;
}
}
printf("%d\n", sum);
return 0;
}
#define N13
#define LEN sizeof(struct person)
#include<stdio.h>
int main()
{
int i, count;
struct person
{
int number;
struct person *next;
};
struct person *head, *p1, *p2;
head = p2 =NULL;
for(i =1; i<=N; i++)
{
p1=(struct person *)
malloc(LEN);
p1 -> number = i;
if (head ==NULL) head = p1;
else p2 -> next = p1; p2 = p1;
}
p2 -> next = head;
printf("\n退出圈子的人的原来序号是:\n");
for (count =1; count<N; count++)
{
i =1;
while( i !=3)
{
p1 = head;
head = head -> next;
i++;
}
p2 = head;
printf("%3d", p2 -> number);
p1 -> next = head = p2 -> next;
free(p2);
}
printf("\n出卖耶稣的叛徒的原来序号是:\n%3d\n", head->number);
return 0;
}
这道题涉及的范围很广,牵扯到指针、指向函数的指针、for循环,说句实话我只知道原理,但是目前我还不能独自编写出来。如题我知道结果,知道如何计算,但是就是写不出来代码,很遗憾。但是我相信用不了多久我就能独自完成了。
说起while,就不得不提另一个常用的循环结构了:for。我们都用过QQ吧,点开QQ有很多列表,而点开每个列表你可以在列表下面找自己的好友、同学...,这里就需要用到for循环了。当然这里只说一些很简单的,假如有4个列表,每个列表有6个好友。
#include <stdio.h>
int main()
{
for (int i =1; i<=4; i++)
{
printf("好友列表%d\n", i);
for (int j =1; j<=6; j++)
{
printf(" 好友%d\n", j);
}
}
return 0;
}
这样我们是不是可以制作一些简单的列表了。一个问题,我们每个列表下好友不可能都相等,这该如何处理?
说道循环结构,就不得不说到break和continue。总结下它俩的特点:
break:在switch语句中,退出整个switch(选择结构)语句;在循环结构中,退出整个循环语句;它只对最近的循环结构有效 (最近原则)。
continue:在循环结构中,结束当前这次的循环体,进入下一次循环体;只对最近的循环结构有效(最近原则)。
#include<stdio.h>
int main()
{
for (int i =0; i<10; i++) {
if (i %2) continue;
if (i ==8)break;
printf("i=%d\n", i);
}
return 0;
}
附带一道简单题目。
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------