核心:从数据的第一个元素开始,依次比较,直到找到目标数据或查找失败。
1.从表中的第一个元素开始,依次与关键字比较。
2.若某个元素匹配关键字,则 查找成功。
3.若查找到最后一个元素还未匹配关键字,则 查找失败。
顺序查找对表中元素的排序无要求,这些元素在表中可以任意排序,这使得顺序查找的适应性很高。顺序查找的实现很简单,其示例代码如下:
#include "stdio.h"
void main(){
int a[10],num,i,flag; /*变量定义*/
printf("Please input numbers: ");
for(i=0;i<=9;i++){
scanf("%d",&a[i]); /*接收输入的数组*/
}
printf("Please finding numbers: ");
scanf("%d", &num); /*接收关键字*/
for(i=0;i<=9;i++){
if(a[i]=num){ //查找到所需的元素,跳出循环
flag=1;
break;
}
}
if(i==10){
flag=0;
}
if(flag){
printf("The numbers find!\n");
}
else{
printf("The numbers No find!\n");
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载
解决方案: 你可以使用C语言中的流重定向功能来解决该问题。具体步骤如下:
freopen("input.txt", "w", stdin);
freopen("output.txt", "w", stdout);
其中,"input.txt"为输入文件名,"output.txt"为输出文件名。
int tmp;
while(scanf("%c", &tmp) != -1) {
if(tmp == '\n' || tmp == ' ') {
putchar(tmp);
continue;
}
printf("*");
}
其中,tmp为读入字符的临时变量,当读入数字时使用"*"替代,而其他字符则输出。
完整代码如下:
#include <stdio.h>
void calculate_characters(char str[])
{
int vocabulary = 0, digit = 0, space = 0, other = 0;
int i;
for (i = 0; str[i] != '\0'; i++)
{
if ((str[i] >= 'A' && str[i] <= 'Z') || (str[i] >= 'a' && str[i] <= 'z'))
vocabulary++;
else if (str[i] >= '0' && str[i] <= '9')
digit++;
else if (str[i] == ' ')
space++;
else
other++;
}
printf("vocabulary: %d\ndigit: %d\nspace: %d\nother: %d\n", vocabulary, digit, space, other);
}
int main()
{
freopen("input.txt", "w", stdin); //将标准输入流重定向到文件中
freopen("output.txt", "w", stdout); //将标准输出流重定向到文件中
char string[1000];
printf("please enter a string: ");
gets(string);
calculate_characters(string); //计算字符数并保存到文件中
fclose(stdin); //关闭输入输出流
fclose(stdout);
printf("Result:\n");
//读出文件内容并输出到屏幕上,但不输出数字
freopen("output.txt", "r", stdout); //重新将标准输出流重定向到文件中
int tmp;
while(scanf("%c", &tmp) != -1) {
if(tmp == '\n' || tmp == ' ') {
putchar(tmp);
continue;
}
printf("*");
}
fclose(stdout);
return 0;
}
你的两个之间是逗号,题目要求是空格,你修改下应该就可以了
别的没问题