小编nof*_*ofe的帖子

正确使用C中的%s - 非常基本的水平

我知道%s是一串字符,但我不知道如何使用它.任何人都可以提供一个非常基本的例子,说明它的使用方式以及它与char的不同之处?


(编辑)的

我进入这门课程已经两周了,这是我第一次编程.我不允许在作业中使用尚未教授的材料,所以这就是我问的原因.我有几本关于C的书并且用Google搜索但仍然不确定,所以我问道.(感谢所有的下选票)下面给出的所有例子都使用了尚未教授的数组,所以我假设我还不能使用%s.谢谢.

c

11
推荐指数
1
解决办法
12万
查看次数

从C中的长整数中提取个别数字

我正在为C课程(第一门编程课程)做作业.部分分配是编写代码,以便用户输入长达9位的数字,程序需要确定这个数字是"增加"/"真正增加"/"减少"/"真正减少"/"增加和减少"/"真正减少并且真正增加"/"不减少而不增加".(总共7个选项)

由于这是我们的第一项任务,除了课堂上教授的内容外,我们不允许使用任何其他内容:

do-while,for,while循环,else-if,if,break,continue scanf,printf,modulo和基本运算符

(除了stdio.h之外我们不能使用任何库)

而已.我不能使用数组getchar或任何这些东西.我可以用来接收用户输入的唯一功能是scanf.

到目前为止,我已经用流程图和所有内容编写了算法,但我需要将用户的输入分成不同的数字.

例如,如果用户输入"1234 ...",我想在a中保存1,在b中保存2,依此类推,然后在所有数字之间进行比较,以确定它们是否全部相等(增加和减少) )或者a> b> c ...(减少)等等.

我知道如何使用%和/运算符分隔每个数字,但我无法弄清楚如何将这些值"保存"在一个变量中,以后我可以用于比较.

这是我到目前为止:

printf("Enter a positive number : ");

do {
    scanf ("%ld", &number);
    if (number < 0) {
        printf ("invalid input...enter a positive integer: ");
        continue;
    }
    else break;
} while (1);

while (number < 0) {
    a = number % 10;
    number = number - a;
    number = number / 10;
    b = a;
}
Run Code Online (Sandbox Code Playgroud)

c

8
推荐指数
1
解决办法
1万
查看次数

C中的递归函数:返回总是必要的吗?

这是我第一次使用递归函数,我写的这个函数返回一个字符串的大小,如果它只包含升序的字母,如果不包含它返回-1.

在我拿出第二个"返回"之后,我不明白为什么它适用于这两个代码.比另一个更浪费一个吗?会欣赏一些见解.

with" return only_ascending_letters(string,index + 1);"

 #include <stdio.h>

    int only_ascending_letters(char string[], int index);

    void main() {
        char string1[]="Hi my name is pete";
        char string2[]="aabcdefg";

        printf("the first string is %d and the second one is %d\n",only_ascending_letters(string1,0),only_ascending_letters(string2,0));

    }

    int only_ascending_letters(char string[], int index){
        if(!string[index]) return index;
        if(((string[index]>='a'&&string[index]<='z')||(string[index]>='A'&&string[index]<='Z'))&&((string[index]<=string[index+1])||!string[index+1])) 
            return only_ascending_letters(string, index+1);
        else return -1;

    }
Run Code Online (Sandbox Code Playgroud)

with"only_ascending_letters(string,index + 1);"

 #include <stdio.h>

    int only_ascending_letters(char string[], int index);

    void main() {
        char string1[]="Hi my name is pete";
        char string2[]="aabcdefg";

        printf("the first string is %d and …
Run Code Online (Sandbox Code Playgroud)

c

3
推荐指数
1
解决办法
1018
查看次数

用C打印一个非常大的整数

我在一个浮点变量中存储了一个非常大的数字,但是当我打印它时,我想只显示整数部分而小数点后面没有任何内容.

对于int或long范围内的数字,我会进行一次转换,但这对我没有帮助,因为我要打印的数字对于int或long来说太长了.

我看过这个解释:http://www.cprogramming.com/tutorial/printf-format-strings.html但我没有成功解决这个问题.

这是我的代码和我尝试进行转换:

double sum=552074001368;
long long_sum;
long_sum = (long)(sum);      //int casting for double "add" 
if(sum>=0) printf("=\n%ld\n",long_sum);
else printf("=\n%ld\n",-long_sum);
Run Code Online (Sandbox Code Playgroud)

我不想使用特定的精度,printf("%15f")因为这个变量波动,有时非常短,如4位数.

c

1
推荐指数
2
解决办法
282
查看次数

标签 统计

c ×4