创建单链表并赋值,要求遍历能输出1~9
#include<stdio.h>
#include<stdlib.h>
#define ERR 0
#define OK 1
struct node
{
int num;
struct node * next;
}
typedef struct node Node;
typedef struct node * Link;
void creat_link(Link *head)
{
*head = NULL;
}
int judge_node(Link *new_node)
{
if(*new_node == NULL)
{
return ERR;
}
else
{
return OK;
}
}
void creat_new_node(Link *new_node,int i)
{
do
{
*new_node = (Link)malloc(sizeof(Node));
}while{judge_node(*new_node) == ERR}
(*new_node)->num = i;
}
void insert_head(Link *head,Link new_node)
{
new_node->next = *head;
*head = new_node;
}
void display(Link head)
{
Link p = *head;
if(p == NULL)
{
printf("链表为空");
}
else
{
if(p != NULL)
{
printf("num = %d\n",p->num);
p = p->next;
}
}
}
int main()
{
Link head;
Link new_node;
creat_link(&head);
for(i = 1;i <= 9;i++)
{
creat_new_node(&new_node,i);
insert_head(&head,new_node);
}
display(&head);
}
读取一个5*5数组,然后显示每行的和与每列的和
#include<stdio.h>
#define N 5
int main()
{
printf("请输入25个数字 :");
int a[N][N],i,j,sum = 0;
for(i = 0;i < N;i++)
{
for(j = 0;j < N;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i = 0;i < N;i++)
{
for(j = 0;j < N;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
for(i = 0;i < N;i++)
{
for(j = 0;j < N;j++)
{
sum += a[i][j];
}
printf("第 %d 行的和为:%d\n",i+1,sum);
sum = 0;
}
for(j = 0;j < N;j++)
{
fo(i = 0;i < N;i++)
{
sum += a[i][j];
}
printf("第 %d 列的和为: %d\n",j+1,sum);
sum = 0;
}
}