VimIy微民网,让世界倾听微民的声音! 设为首页 | 加入收藏 | 网站地图
当前位置:主页 > 大杂烩 >

【我知道你们非常专业】 【你们啥都懂】 【你们什么都懂】 关于C语言,有懂的帮我解决一下问题吧

整理时间:2013-07-06 21:33 来源:www.vimiy.com 作者:编辑 点击:

【楼主】2013-07-06 23:49

» 关于C语言,有懂的帮我解决一下问题吧
    晚上奋斗了一晚上C语言的编程,发现C语言相当的博大精深,上大学没有学过,果断就应该去学学,现在工作了好几年,突然写点程序,本来想着很简单的事情,结果实际操作起来,我也只能对自己的水平进行呵呵了,水区高人这么多还望多指点指点,在下感激不尽……以下是题目……
    所有题目都要使用调用函数
    
    
    
    要求:
    1、使用多个文件,即主函数和各个函数分别保存在不同的.c文件中,在头文件进行函数原型声明
    2、读入一篇英语文档,对其进行字母频率分析,不区分大小写,按使用频率从大到小输出字母(小写)和使用频率。
    
    主要技术技术问题的描述:
    定义一个长度为26的int数组存放所统计的各个字母的使用频率
    在统计字母使用频率时,不能用IF或者switch语句,利用字母的ASCII码与数组元素下标之间的关系来求得
    按使用频率从大到小进行排序,使用指针数组。
    
    
    
    
    第一小题
    程序运行时,提醒用户书屋四则运算表达式(表达式最多三个运算符号,数据范围1-100的整数,输入结束后程序自动出答案
    例如:
    输入:13-10+5/8
    输出3.625
    
    第二小题
    使用多个文件,即主函数和各个函数分别保存在不同的.c文件中,在头文件进行函数原型声明
    在程序中增加自动出题及自动批卷功能
    不限定运算符个数
    允许括号运算的存在
    
    
    
    输入一个由多个单词组成的句子,长度不超过200个字符,头字母小写变大写
    我在发!
    例如:
    输入:hi jack,welcome to china.
    输出:Hi Jack,Welcome To China.
    要求读入一篇英语作文,对所有字母的开头变成大写。
    利用空格和标点符号区分单词
    不使用数组利用指针来时间
    使用多个文件,即主函数和各个函数分别保存在不同的.c文件中,在头文件进行函数原型声明
    
    
    为统计整数的位数,输入一个不包括空格的由数字组成的整数,长度不超过五位。统计这个整数的位数,然后按数序输出它的各个数字,再逆排序输出
    例如:
    输入56439
    输出:5位数 5,6,4,3,9 ; 9,3,4,6,5
    要求主函数控制输入、函数调用和输出;实现任意数的整数操作
    使用多个文件,即主函数和各个函数分别保存在不同的.c文件中,在头文件进行函数原型声明
    为统计整数位数,定义一个int数组存放所统计的整数位数
    运用模块运算提取整数各个数位上的数字
    
网友评论2013-07-06 23:51


    第一个程序经过百度,初步写出来了,哪里不好,也请指点一下
    // 11929108_QianBeilei_01.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    
    #include<stdio.h>
    #include<stdlib.h>
    
    void sort(char *a, int *sum)
    {
     int i, j, k, temp1, temp2;
     for (i=0; i<26; i++)
     {
     for (j=i+1; j<26; j++)
     {
     if (sum > sum)
     {
     k = j;
     temp1 = a;
     temp2 = sum;
     sum = sum;
     sum = temp2;
     a = a;
     a = temp1;
     }
     }
     }
    }
    void txt(char c)
    {
     FILE *fp;
     fp = fopen ("e:\\qqq.txt","r");
     int n=0;
     char m;
     while (!feof(fp))
     {
     fscanf (fp, "%c", &m);
     c = m;
     n++;
     }
    }
    
    void main()
    {
     int r;
     char c;
     int sum, i, j;
     char a;
     printf("1:Enter English sentence.\n2:Importing a .txt.\n");
    
     scanf("%d",&r);
    
     if(r==1)
     scanf("%s",&c);
    
    
     else
     txt(c);
     for (i=0;i<26;i++)
     {
     a = i;
     sum = 0;
     }
    
     for (i=0; c!='\0'; i++)
     {
     if (c>='A' && c<='Z')
     c += 32;
     sum-'a']++;
     }
     sort(a,sum);
     for (j=0; j<26; j++)
     {
     printf ("%c\t", a+'a');
     printf ("%d", sum);
     printf ("\n");
     }
    }
    
网友评论2013-07-06 23:52


    剩下的虽然写了一点,不过完全拿不出手了……
    
网友评论2013-07-06 23:56


    楼主 这个不如去baidu发点赏金来的快啊
    
    而且第一题你写的思想好像跟要求略微不符合 应该是先统一大小写(例如大写) 然后用 字符-65 再用数组对应下标的元素计数 最后再排序应该才对
    


网友评论2013-07-06 23:59


    第一题不让用if?
    
网友评论2013-07-07 00:00


    我草还好今年重修把C语言过了,
    没事真别学这个,就现在这基础,离编出有意义的程序远着呢
    
网友评论2013-07-07 00:00


    这样么,我还说水区众比较靠谱,百度不靠谱……
    
网友评论2013-07-07 00:20


    Reply Post by 众人叫我晚饭哥 (2013-07-07 00:00):
    
    我草还好今年重修把C语言过了,
    没事真别学这个,就现在这基础,离编出有意义的程序远着呢
    
    真心觉得"有意义"的程序大部分都是C编的...
    
网友评论2013-07-07 00:37


    第一题不让用if,你用了。
    这样来设计,假设都是小写字母(大写的操作类似,不过要多几个步骤),那么你先设置一个int aaa,for一下都先等于0,然后对于字符串的每一个字符,减去字符’a',得到x,然后aaa+1,重复完成整个字符串,字频就是aaa的每个值。
    大概就是这样,爪机没法多打。
    如果是混编大小写的字符,就要多考虑一下他们和字符'a'在ascii码表中的位置的数值关系。
    
网友评论2013-07-07 00:45


    第一题 char和int是可以减的,你先求出所有字符的使用频率,大写'A' 是65,如果读入的是c,就写成类似(array)++的形式就行,非常简洁
    第二题最复杂,涉及栈和中后缀表达式转换,一时说不清楚,本科生水平能写出来的算高手了。
    第三题简单,遍历字符串,空格后面一个字符转大写,考查指针的自增用法,水题。
    第四题 倒序输出就是除10取余,每一位保存到string里,再用makereverse反转一下就是正序
    
网友评论2013-07-07 01:06


    第二题用逆波兰式和栈操作吧
    
网友评论2013-07-07 07:36


    Reply Post by thbcd (2013-07-07 00:45):
    
    第一题 char和int是可以减的,你先求出所有字符的使用频率,大写&#39;A&#39; 是65,如果读入的是c,就写成类似(array)++的形式就行,非常简洁<br/>第二题最复杂,涉及栈和中后缀表达式转换,一时说不清楚,本科生水平能写出来的算高手了。<br/>第三题简单,遍历字符串,空格后面一个字符转大写,考查指针的自增用法,水题。<br/>第四题 倒序输出...
    大神,其实我没学过C语言……如果能在具体讲讲,在下感激不尽啊
    

    
    
    

关于网站 | 网站声明 | 用户反馈 | 合作伙伴 | 联系我们
Copyright © 2012年2月8日