int main()
{
int i = 0;
int iCount = 1;
for (;i <= 3;i++)
{
int j = 1;
for (;j <= 5;j++)
{
int k = 0;
for (;k <= 6;k++)
{
if (8 == (i + j + k ))
{
printf("第%d种方案:A学院%d名,B学院%d名,C学院%d名\n",iCount++,i,j,k);
}
}
}
}
getchar();
return 0;
}
第五个,网上随便找个排序方法(冒泡,选择,插入,希尔,堆,快排,归并)就行了
#include
#include "string.h"
struct ListNode
{
ListNode *pNext;
char cValue;
};
int create(ListNode *&pHead,const char *pStr)
{
if (NULL == pStr || '\0' == *pStr)
{
return -1;
}
pHead = (ListNode *)malloc(sizeof(ListNode));
pHead->pNext = NULL;
pHead->cValue = *pStr;
pStr++;
while (*pStr)
{
ListNode *pTemp = pHead;
ListNode *pTemp2 = pHead;
while (NULL != pTemp)
{
if (pTemp->cValue >= *pStr)
{
break;
}
pTemp2 = pTemp;
pTemp = pTemp->pNext;
}
ListNode *pNew = (ListNode *)malloc(sizeof(ListNode));
pNew->cValue = *pStr;
if (pHead == pTemp)
{
pNew->pNext = pHead;
pHead = pNew;
if (pHead->cValue > pHead->pNext->cValue)
{
pHead->cValue = pHead->pNext->cValue;
pHead->pNext->cValue = *pStr;
}
}
else if (NULL == pTemp2->pNext)
{
pTemp2->pNext = pNew;
pNew->pNext = NULL;
}
else
{
pNew->pNext = pTemp2->pNext;
pTemp2->pNext = pNew;
}
pStr++;
}
return 0;
}
void output(ListNode *pHead)
{
if (NULL == pHead)
{
return;
}
while (NULL != pHead)
{
printf("%c",pHead->cValue);
pHead = pHead->pNext;
}
printf("\n");
}
int sub(ListNode *pHead1,ListNode *pHead2,ListNode *&pHead)
{
if (NULL == pHead1 || NULL == pHead2)
{
return -1;
}
ListNode *pTail = NULL;
if (pHead1->cValue < pHead2->cValue)
{
pHead = pHead1;
pHead1 = pHead1->pNext;
pTail = pHead;
}
else
{
pHead = pHead2;
pHead2 = pHead2->pNext;
pTail = pHead;
}
while (NULL != pHead1 && NULL != pHead2)
{
if (pHead1->cValue < pHead2->cValue)
{
pTail->pNext = pHead1;
pTail = pHead1;
pHead1 = pHead1->pNext;
}
else
{
pTail->pNext = pHead2;
pTail = pHead2;
pHead2 = pHead2->pNext;
}
}
while (NULL != pHead1)
{
pTail->pNext = pHead1;
pTail = pHead1;
pHead1 = pHead1->pNext;
}
while (NULL != pHead2)
{
pTail->pNext = pHead2;
pTail = pHead2;
pHead2 = pHead2->pNext;
}
pHead1 = pHead->pNext;
pHead2 = pHead;
while (NULL != pHead1)
{
ListNode *pTemp = pHead1->pNext;
pHead1->pNext = pHead;
pHead = pHead1;
pHead1 = pTemp;
}
pHead2->pNext = NULL;
return 0;
}
int main()
{
const int MAX_SIZE = 1024;
printf("请输入链表1(字符串长度不超过%d):\n",MAX_SIZE);
char szBuff[MAX_SIZE] = {0};
if (0 == scanf_s("%s",&szBuff,sizeof (szBuff)))
{
printf("输入的字符串不对\n");
getchar();
return -1;
}
ListNode *pHead1 = NULL;
create(pHead1,szBuff);
printf("链表1为:");
output(pHead1);
printf("请输入链表2(字符串长度不超过%d):\n",MAX_SIZE);
if (0 == scanf_s("%s",&szBuff,sizeof (szBuff)))
{
printf("输入的字符串不对\n");
getchar();
return -1;
}
ListNode *pHead2 = NULL;
create(pHead2,szBuff);
printf("链表2为:");
output(pHead2);
ListNode *pHead = NULL;
sub(pHead1,pHead2,pHead);
printf("\n新链表为:");
output(pHead);
while (NULL != pHead)
{
ListNode *pTemp = pHead->pNext;
free(pHead);
pHead = pTemp;
}
while (1);
return 0;
};