| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 740 人关注过本帖
标题:[求助]我做不出来的题目C
只看楼主 加入收藏
yl82765023
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-4
收藏
 问题点数:0 回复次数:8 
[求助]我做不出来的题目C

题目:
输入数据是小于8位的整数,
先把数据颠倒,然后每个数+5,再用和除以10的余数代替该数字,最后把第一位和最后一位数字交换
要求1.用while 和for来做
PS:下面是我写的代码 我不知道错在哪里 该怎么修改 请高手解惑
#include<stdio.h>
void main()
{
int a,b;
int f[7],i,t;
a=0;
printf("\n请输入一个数");
scanf("%d",&a);
while(a!=0)
{
b=(a+5)%10;
for(i=0;i<7;i++)
{
f[i]=b;
t=f[0];
f[0]=f[6];
f[6]=t;
}
a=a/10;
}
for(i=0;i<7;i++)
printf("\n加密后的数组为:%d",f[i]);
printf("\n");
}
2007-09-04 12:50
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
你这个说法我不是很懂,看你做的我就更迷惑了.请把问题阐述的清楚一些行吗?这样,我们能方便请出结果.

~~我的明天我知道~~
2007-09-04 13:05
星云
Rank: 1
等 级:新手上路
威 望:1
帖 子:81
专家分:0
注 册:2007-5-23
收藏
得分:0 
说的不清楚

2007-09-04 13:20
peswe
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2006-11-22
收藏
得分:0 
就是,我也迷糊了,看你他的题目就根程序对不上号,说是:“先把数据颠倒,然后每个数+5”,可程序中根本就而就没见数据的颠倒!~

C斗士~~~fighting!!!!
2007-09-04 13:20
dart
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-9-2
收藏
得分:0 
是不是 数据本身的各个数位上的数据颠倒?
2007-09-04 14:02
yl82765023
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-4
收藏
得分:0 

上一篇发的大家都说我交代的不清楚
现在我重新发一贴吧. 我就直接把书上的语言搬过来了
题目:
某个公司采用公用电话传递数据信息,数据是小于8位的整数.为了确保安全,在传递过程中需要加密.加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10代替该数字,最后将第一位数和最后一位数字交换.
要求通过程序实现数据加密的过程.
问题分析:
●为了对数据的每一位数字进行操作,首先需要将数据不同位的数字拆分出来,将拆分后的数字保存在数组中,在拆分过程中完成倒序.
●对数组中的元素应用加密规则:将每个元素加上5,再除以10取余.
●将数组的第一位和最后一位数字交换
●输出加密后的数据信息
PS:再看不懂我要跳楼了我可是按书上的敲下来的```连标点都没漏

下面是我自己写的〖有问题代码〗别被我误导了``我就是发出来给你们看看我哪里错了.
麻烦高手们把正确的答案回复一下
#include<stdio.h>
void main()
{
int a,b;
int f[6],i,t;
a=0;
printf("\n请输入一个数");
scanf("%d",&a);
while(a!=0)
{
b=(a+5)%10;
for(i=0;i<7;i++)
{
f[i]=b;
t=f[0];
f[0]=f[6];
f[6]=t;
}
a=a/10;
}
for(i=0;i<7;i++)
printf("\n加密后的数组为:%d",f[i]);
printf("\n");
}
补充: 书上的打印结果是: 请输入原数组:
4567583
加密后的数组:
9302108

2007-09-04 18:09
老糊涂
Rank: 1
等 级:新手上路
威 望:1
帖 子:117
专家分:0
注 册:2007-5-19
收藏
得分:0 
int 数值小于32767显然输入4567583越界了

2007-09-05 14:59
peswe
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2006-11-22
收藏
得分:0 

运行环境,vc6.0

#include <stdio.h>

void BSort(int a[],int num,int b);//将数据倒序

void Change(int a[],int b);//加5除10求余,并将首位和末位调位

void Show(int a[],int b);//输出

int main()
{
int a[8],b,num;
printf("\nPlease input the nmuber of the data :\t");
scanf("%d",&b);
printf("\nPlease inpout the data:\t");
scanf("%d",&num);
BSort(a,num,b);
Change(a,b);
Show(a,b);
return 0;

}


void BSort(int a[],int num,int b)
{
int i;
for(i=0;i<b;i++)
{
a[i]=num%10;
num/=10;
}
}


void Change(int a[],int b)
{
int i,temp;
for(i=0;i<b;i++)
{
a[i]=(a[i]+5)%10;
}
temp=a[0];
a[0]=a[b-1];
a[b-1]=temp;
}


void Show(int a[],int b)
{
int i;
for(i=0;i<b;i++)
{
printf("%d",a[i]);
}
printf("\n");
}


C斗士~~~fighting!!!!
2007-09-05 21:44
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 

何必用多用一个int呢?

直接用数组接收不得了???


偶学编程,也许本身就是一个错。。。
2007-09-05 22:04
快速回复:[求助]我做不出来的题目C
数据加载中...
 
   



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

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