// chapter7.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <string.h>#include <ctype.h>void order(int * string) //把数组按从小到大排列,返该数组首地址 输入0结束{ int i,j,temp; int n = 0; //计算输入数组的长度(包括结束数0) int * p = string; while(0 != *p++) { n++; } //起泡法排序 p = string; for(i = 0;i < n; i++) { for(j = 0;j < n-i; j++) { if(*(p+j) > *(p+j+1)) { temp = *(p+j); *(p+j) = *(p+j+1); *(p+j+1) = temp; } } } }int main(int argc, char* argv[]){ /*已有一个已排好序的数组,要求输入一个数后, 按原来排序的规律将它插入数组中。 特殊要求:任意输入一个数列,先排序由小到大 然后再随意插入一个数,按有小到大排列 思路1:输入数接着存入数组,从新排列。(简单) 思路2:排列完大小后插入(复杂)。 本程序采用思路1. */ int a[256]; int i = 0; //p = a; do { scanf("%d",&a[i]); } while(0 != a[i++]); //正确的输入方式 order(a); i = 0; do { printf("%d ",a[i]); } while(0 != a[i++]); //正确的输出方式 putchar('\n'); return 0;} /*为什么while(0 != *p++) 把*p++拆开就不能输入了? { scanf("%d",p); }*/
//在主函数中输入10个的字符串,用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串#include<stdio.h>#define N 100void sort(char *s[],int n);#include<iostream>#include<string>using namespace std;main(){ char *s[10]; char a[10][N]; int i; printf("请输入10个的字符串\n"); for(i=0;i<3;i++) { s[i]=a[i]; printf("输入第%d个字符串:",i+1); scanf("%s",s[i]); } printf("排序之前的10个等长的字符串为:\n"); for(i=0;i<3;i++) printf("%s\n",*(s+i)); sort(s,3); printf("排序之后的输出如下:\n"); for(i=0;i<3;i++) printf("%s\n",*(s+i)); system("pause");}void sort(char *s[],int n)//从小到大排列 { char *t; int i; for(i=0;i<n-1;i++) for(int j=0;j<n-1-i;j++) if(strcmp(s[j],s[j+1])>0) { t=s[j];s[j]=s[j+1];s[j+1]=t; }}