| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 887 人关注过本帖
标题:c语言编程问题,谢谢
只看楼主 加入收藏
血色二锅头
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-5-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
c语言编程问题,谢谢
第二题
程序功能:从键盘输入一个大于2的正整数n,求解并输出最接近n的素数(<n不包括n)。
如输入:
 17                  
则输出
13
再输入:
45                  
则输出
43  

第3题(17分,源程序文件 1-A-3.C )
上机要求:按程序功能要求编写程序,并将程序代码保存1-A-3.C 中。
程序功能:从键盘上输入5个整数(设每个整数取值1至5),按示例格式输出5行数字图形,每行的数字及数字个数与输入数相对应。
如输入:
    5  4  3  2  1
则输出(□表示空格,↙表示回车):
    5□5□5□5□5↙
    □4□4□4□4↙
    □□3□3□3↙
    □□□2□2↙
    □□□□1↙
示例说明:输出共5行,居中对齐形状。输入的第1个数为5,则输出的第1行有5个5,数字之间含有1个空格,第1个5之前有5-5=0个空格;输入的第2个数为4,则输出的第2行有4个4,数字之间含有1个空格,第1个4之前有5-4=1个空格;以此类推。
再如输入:
    2  3  2  1  2
则输出(□表示空格,↙表示回车):
    □□□2□2↙
    □□3□3□3↙
    □□□2□2↙
    □□□□1↙
    □□□2□2↙
示例说明:输出共5行,居中对齐形状。输入的第1个数为2,则输出的第1行有2个2,数字之间含有1个空格,第1个2之前有5-2=3个空格;以此类推。

第4题(18分,源程序文件1-A-4.C )
从键盘输入一个字符串(不多于80个字符),分别在该字符串中的所有数字字符子串(即单个或多个连续的数字字符)前加入一个字符$,然后输出处理后的该字符串,如果该字符串中不包含有数字字符子串,则报告“There are no digits.”。例如,
输入:abcd4,Efghi*123p87KKK9034  6 xyz
输出:abcd$4,Efghi*$123p$87KKK$9034  $6 xyz
又如,
输入:abcd,Efghi*Pkkk  #%xyz
输出:There are no digits.
搜索更多相关主题的帖子: 数字 键盘 编写程序 源程序 正整数 
2012-05-10 10:14
血色二锅头
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-5-3
收藏
得分:0 
有没有人帮个忙啊
2012-05-10 10:58
唯我独魔
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:176
专家分:782
注 册:2011-4-13
收藏
得分:4 
好的
2012-05-10 11:18
金鑫崔力文
Rank: 2
等 级:论坛游民
帖 子:4
专家分:14
注 册:2012-3-8
收藏
得分:4 
程序代码:
#include<stdio.h>
#include<math.h>

int fun(int a)
{
    int i;
    if (a<=1)
    return 0;
    for(i=2;i<sqrt(a);i++)
    {
        if((a%i)==0)
        return 0;
    }
    return 1;
}


int main()
{
    int a,i;
    printf("请输入一个大于2的整数:");
    scanf("%d",&a);
    for(i=a-1;i>=2;i--)
    {
        if(fun(i))
        {
            printf("%d",i);
            break;
        }
    }
    return 0;
}
第二题
2012-05-10 11:34
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:4 
第3题
程序代码:
#include <stdio.h>
#include <stdlib.h>
void display(int num)
{
    switch(num)
    {
    case 1:
        printf("%5d\n",num);
        break;
    case 2:
        printf("%4d%2d\n",num,num);
        break;
    case 3:
        printf("%3d%2d%2d\n",num,num,num);
        break;
    case 4:
        printf("%2d%2d%2d%2d\n",num,num,num,num);
        break;
    case 5:
        printf("%d%2d%2d%2d%2d\n",num,num,num,num,num);
        break;
    default:
        printf("input error!\n");
        return;
    }
}
int main()
{
    char a[10];
    int num[5];
    gets(a);
    int i;
    for(i=0;i<5;++i){
        num[i]=atoi(a+2*i);
        if(num[i]<=5&&num[i]>=1) display(num[i]);
    }

    return 0;
}
2012-05-10 12:26
S_Ringo
Rank: 4
来 自:歌舞伎町
等 级:业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
收藏
得分:0 
第四题:
#include<stdio.h>
#include<malloc.h>
struct in
{
    char ch;
    struct in *next;
};//创建结构体in;
struct in *creat(void)
{
    struct in *p;
    p=(struct in *)malloc(sizeof(struct in));
    p->next=NULL;
    return(p);
}//开辟一个结构体空间,返回该空间的首地址;
int search(struct in *p)
{
    int flag=0;
    while(p->next!=NULL)
    {
        if((p->ch>47)&&(p->ch<58))
        {
            flag=1;
            break;
        }
    }
    return(flag);
}//进行判断,若有数字则返回1,没有数字返回0;
int main()
{
    struct in *head=NULL;
    struct in *p1=NULL;
    struct in *p2=NULL;
    int i=0;
    printf("请输入字符串,以'*'加回车键结束\n");
    p1=creat();
    head=p1;
    p2=p1;
    p1->ch=getchar();
    while(p1->ch!='*')
    {
        p2=creat();
        p1->next=p2;
        p1=p2;
        p1->ch=getchar();
    }
    i=search(head);
    if(i==0)
    {
        printf("There are no digits.\n");
    }
    else
    {
        p1=head;
        while(p1->next!=NULL)
        {
            if((p1->ch>47)&&(p1->ch<58))
            {
                printf("$");
            }
            printf("%c",p1->ch);
            p1=p1->next;
        }
    }
    printf("\n");
    return(0);
}
2012-05-10 13:19
S_Ringo
Rank: 4
来 自:歌舞伎町
等 级:业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
收藏
得分:4 
但是我开始尝试回车键结束,因此把判断条件while(p1->ch!='*')中的‘*’换成‘\r’,
可是无论怎么敲回车键,都没有输出,
(换成回车键的ascii码值13也一样)
改成这样之后,在字符串末尾输入'*'后再回车,就正常输出了……
求高手解释……
是不是我的ASCII码使用有问题?
2012-05-10 13:22
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:4 
回复 6楼 S_Ringo
你确定有答案输出?

最基础的往往是你最容易忽略的!
2012-05-10 14:35
S_Ringo
Rank: 4
来 自:歌舞伎町
等 级:业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
收藏
得分:0 
回复 8楼 于祥
亲测VC6有输出,……
但是把那个判断条件由‘*’改为‘\r’就木有输出了……

求指教
2012-05-10 14:40
快速回复:c语言编程问题,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020098 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved