注册 登录
编程论坛 C++教室

两个简单程序就指点

fl8962 发布于 2012-10-30 23:16, 275 次点击
#include<stdio.h> 输入三个字符串,将他们由大到小排序并输出。
#define max 100
void main()
{
    char zifu[3][max];
    printf("请输入3个字符串");
    int i,j;
    for(i=0;i<3;i++)
        scanf("%s",zifu+i);
        for(i=0;i<2;i++)
            for(j=i+1;j<3;j++)
            {
                char *temp;
                if(strcmp(zifu[i][max],zifu[j][max])>0)
                {    temp=*zifu[i];
                    *zifu[i]=*zifu[j];
                    *zifu[j]=temp;
                }
            }
            for(i=0;i<3;i++)
                printf("%s",zifu[i][max]);
}
#include<stdio.h> 求一个等待输入数组的长度,1213是我自己定义的结束标志。。求指点,
#define max 1000
void main()
{
    int m[max];
    int i,j=0;
    for(i=0;i<max;i++)
    {
        scanf("%d",&m[i]);
        
        
    }
    for(i=0;i<max;i++)
    {
        if(m[i]==1213)
            break;


    }
    printf("%d",i);
}
2 回复
#2
w5277050902012-10-31 23:07
程序代码:
#include<stdio.h>
#include<string.h>
#define max 100
void main()
{
    char zifu[3][max],(*p)[100];
    int i,j,k;
    char raw[3][max];
    printf("请输入3个字符串:");
    p=zifu;
    for(i=0;i<3;i++)
        scanf("%s",p++);
    for(j=0;j<3;j++)
        printf("the char you input:%s\n",zifu[j]);

    if(strcmp(zifu[0],zifu[1])>0)
        {
        if(strcmp(zifu[0],zifu[2])>0)
        {
            strcpy(raw[0],zifu[0]);
            if(strcmp(zifu[2],zifu[1])>0)
            {
                strcpy(raw[1],zifu[2]);
                strcpy(raw[2],zifu[1]);
            }
            else
            {
                strcpy(raw[1],zifu[1]);
                strcpy(raw[2],zifu[2]);
            }
        }
        else
            strcpy(raw[1],zifu[2]);

        }
    else
        {
        if(strcmp(zifu[1],zifu[2])>0)
        {
            strcpy(raw[0],zifu[1]);
            if(strcmp(zifu[2],zifu[0])>0)
            {
                strcpy(raw[1],zifu[2]);
                strcpy(raw[2],zifu[0]);
            }
            else
            {
                strcpy(raw[1],zifu[0]);
                strcpy(raw[2],zifu[2]);
            }
        }
        else
            strcpy(raw[0],zifu[2]);

        }
    for(k=0;k<3;k++)
        printf("%s ,",raw[k]);
}
首先 你没有包含字符库  string.h
然后赋值要用这个strcpy来赋值 用指针你那样是不行的
#3
w5277050902012-10-31 23:14
程序代码:
#include<stdio.h>
#define max 1000
void main()
{
    int m[max];
    int i,j=0;
    for(i=0;i<max;i++)
    {
        scanf("%d",&m[i]);

        if(m[i]==1213)
        {
            break;
        }

    }
    printf("%d",i);
}
不知道这是不是你所说的程序。。。。
1