c语言程序设计答案

输入若干个正整数(输入-1为结束标志),并建立一个单向链表,将其中的偶数值结点删除后输出。
输入:1 2 3 4 5 6 7 -1
输出:1 3 5 7

只说一下思路
实在写不出来再追问
最好能自己解决
第一题:
就是一个杨辉三角问题
用双循环
外循环是行数(用
i
表示)
从0到n
(n自己输入)
内循环是列数(用
j
表示)
从0到2*i-1
然后就是赋

很多种方式
比如你定义一个
字符变量
C
给它赋值为A
然后每次都用C给数组赋值
然后让C加1
方法很多
(数组是字符二维数组,

之前要初始化一下
给数组都赋值为
空格)
第二题:
定义两个二维数组
一个一维数组
按照题目要求
先把每个同学的成绩和名字分别存放到两个二维数组里面
同样是双循环
然后再用双循环
把每个同学成绩加起来放到一维数组里面
然后接下来就是对一位数组内容进行排序
排序过程中
也要将名字的那个二维数
组同样排序
因为一维数组中的总分顺序和二维数组中的姓名顺序是一样的
比如
要将第二个同学的成绩和第五个同学的成绩交换
那么就要
将总分交换
再将姓名交换
不然分就不对人了
第三题:
题目没明白什么意思
第四题:
用循环从第一个元素判断到最后一个元素
定义4个变量存储
数字
大写
小写
空格出现的次数
查一下ASCII码
数字好像是48-57
大写字母是
65-90
小写是
97-122
判断元素内容的ASCII在哪个范围
哪个变量就加1
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-27
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define MAX_LEN 10
typedef struct _DATA_ {
int value;
_DATA_ *next;
}DATA;
void main()
{
int i;
char ch;
char str[MAX_LEN + 1];
DATA *pdata, *ptem, *ppre;
pdata = (DATA *)malloc(sizeof(DATA));
pdata->next = pdata;

// Input
while (1) {
for (i = 0; i < MAX_LEN; i++) {
ch = (char)getch();
printf("%c", ch);
if (ch == ' ')
break;
str[i] = ch;
}

i = atoi(str);
if (i == -1)
break;
ptem = (DATA *)malloc(sizeof(DATA));
ptem->value = i;

ptem->next = pdata->next;
pdata->next = ptem;
}

// Delete even numbers
ppre = pdata;
ptem = pdata->next;
while (ptem != pdata) {
if (ptem->value % 2 == 0) {
ppre->next = ptem->next;
free(ptem);
ptem = ppre->next;
} else {
ppre = ppre->next;
ptem = ptem->next;
}

}

// Output
printf("\n");
ptem = pdata->next;
while (ptem != pdata) {
printf("%d ", ptem->value);
ptem = ptem->next;
}
printf("\n");

}本回答被提问者采纳
相似回答