我剛剛開始學習C,它很慢......我想編寫一個程序,它接受一個整數參數並返回它的加倍值(也就是取整數,乘以2,和printf那個值)。基本C編程問題
我故意不想使用scanf函數。這裏是我到目前爲止,什麼是不編譯...
#include <stdio.h>
int main(int index)
{
if (!(index)) {
printf("No index given");
return 1;
}
a = index*2;
printf("Mult by 2 %d",a);
return 0;
}
執行程序時,所以基本上我想要提供的索引的整數。所以,在cygwin中,我會寫./a 10
之類的東西,並將10存儲到索引變量中。 此外,我想編程返回「沒有索引給出」,如果沒有索引值提供,退出...
任何關心幫助我做錯了什麼?
編輯:
此代碼在編譯時返回1個錯誤,基於幫助通過@詹姆斯:
#include <stdio.h>
int main(int 1, char index)
{
int index, a;
if (!(index)) {
printf("No index given");
return 1;
}
a = index*2;
printf("Mult by 2 %d",a);
return 0;
}
編輯2:考慮一個簡單的程序,其中的值剛剛拍攝和回顯(如下所示)
#include <stdio.h>
int main(int argc, char* argv[])
{
int index;
index = argv[1];
printf("Index is %d, ", index);
/*if (!(index)) {
printf("No index given");
return 1;
}
a = index*2;
printf("Mult by 2 %d",a);*/
return 0;
}
該程序未能編譯...任何想法?!?啊。
編輯3:這是最終編譯和工作的代碼。謝謝大家!
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
if (argc <= 1)
{
printf("No index given");
return 1;
}
int i;
i = atoi(argv[1]); // convert string in argv[1] to integer
int a;
a = i*2;
printf("Mult by 2: %d",a);
return 0;
}
謝謝! 阿米特
一旦你得到了整理出來的參數,就像James所暗示的那樣,你會發現參數是字符串「10」,所以你仍然需要把它轉換成int – 2011-01-06 04:43:08
@Amit:關於你的編輯, `int 1`無效。每個參數都是函數內部的一個變量。 `1`不是一個變量,它是一個值。確保你有[一本好的初學C書](http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)。 – 2011-01-06 04:50:11
問題是`1`不能是參數的名字,而且你還沒有完全正確的簽名。在你的代碼中,在該行嚴重輸入「int main(int argc,char * argv [])``。 – 2011-01-06 04:50:52