求大神C语言编程,题目要求在下面

1. 请设计一个程序,从键盘上依次输入4个数据(一个整数、一个浮点数,一个字符,一个字符串),然后一次把他们打印出来。
2. 请设计一个程序,从键盘上依次输入4个数据(一个整数、一个浮点数,一个字符,一个字符串),然后一次把他们打印出来。然后把送入数据和打印的操作再次执行一遍,用循环实现。
3. 修改以上第二步的程序,把其中的字符单独做一个转换:如果是数字字符,把它转换成整数后以整数输出(’9’ 变成数字9);如果是小写字符,把它转换成大写的相同字符(’a’ 变成数字’A’);如果是大写字符,请把它转换成小写的相同字符(’A’ 变成数字’a’)。

问题一:关键在输入字符和字符串要避开回车及空格分隔符。这里可以用getchar解决。

问题二:就是让你函数调用。

问题三:依然是函数调用,但需要函数1返回值或传递地址。至于数字字符转整型,大小写转换,都利用ascii码的差值来转换。

下面是我的代码,三个函数分别对应三个问题。

#include<stdio.h>

#define MLEN 20//字符串最大长度

char fun1();

void fun2();

void fun3();

int main(void)

{

    fun1();

    fun2();

    fun3();

    return 0;

}

char fun1()

{

    int nI;

    float nF;

    char c;

    char str[MLEN];

    printf("请分别输入1个整数,1个浮点数,1个字符及1个字符串(小于%d)\n",MLEN);

    scanf("%d",&nI);

    scanf("%f",&nF);

    getchar();

    scanf("%c",&c);

    getchar();

    scanf("%s",str);

    printf("输入的4项内容分别是:%d,%.2f,%c,%s\n\n",nI,nF,c,str);

    return c;

}

void fun2()

{

    int i=2;

    printf("循环执行两次fun1:\n");

    while(i--)

        fun1();

}

void fun3()

{

    int i=2;

    char c;

    printf("循环执行两次fun1,每次将输入的字符(数字字符转整形,字母大小写转换):\n");

    while(i--)

    {

        c=fun1();

        if(c>='0' && c<='9') printf("输入的是数字字符%c,转成整形输出:%d\n\n",c,c-'0');

        if(c>='a' && c<='z') printf("输入的是小写字母%c,转成大写输出:%c\n\n",c,c-32);

        if(c>='A' && c<='Z') printf("输入的是大写字母%c,转成小写输出:%c\n\n",c,c+32);

    }

}

温馨提示:答案为网友推荐,仅供参考
相似回答